質問するログイン新規登録

回答編集履歴

2

追記

2019/04/06 03:58

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -23,4 +23,11 @@
23
23
  // foo.bar = 456;
24
24
  }
25
25
  ```
26
- [wandbox](https://wandbox.org/permlink/yUWV09KfJHNgxXuv)
26
+ [wandbox](https://wandbox.org/permlink/yUWV09KfJHNgxXuv)
27
+
28
+ ---
29
+ 【追記】
30
+ catsforepawさんのコメントで気がついたのですが、1つ見落としていました。
31
+ コピー・コンストラクタでコピーできてしますのですが、コピーされた方の参照は、コピー元のメンバ変数を参照します。かなり危険なのでこれはコピー禁止(コピー・コンストラクタをdeleteするなど)しない限り使わないほうが良いです。(参照メンバがあるとコピー代入演算子は自動生成されないです。)
32
+
33
+ [wandbox](https://wandbox.org/permlink/ov1yMh0vYdPFDYye)

1

constが消えていたので追加

2019/04/06 03:58

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  ```C++
7
7
  #include <iostream>
8
8
 
9
- #define READ_ONLYXX(dType, dName) private: dType dName##_; public: dType & dName = dName##_;
9
+ #define READ_ONLYXX(dType, dName) private: dType dName##_; public: dType const& dName = dName##_;
10
10
 
11
11
  class Foo
12
12
  {
@@ -23,4 +23,4 @@
23
23
  // foo.bar = 456;
24
24
  }
25
25
  ```
26
- [wandbox](https://wandbox.org/permlink/uWgRk1jwJdF95S2C)
26
+ [wandbox](https://wandbox.org/permlink/yUWV09KfJHNgxXuv)