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

回答編集履歴

3

コメントの追記

2015/05/05 04:14

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -14,6 +14,7 @@
14
14
  void AddsTo(Hoge &obj)
15
15
  {
16
16
  // 別のインスタンスのprivateメンバを変更する
17
+ // ※昔は別インスタンスなのでできないと思っていた
17
18
  obj._value += this->_value;
18
19
  }
19
20
  };

2

記述のミスを訂正

2015/05/05 04:14

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -31,4 +31,4 @@
31
31
  class の private や protected の宣言は、**クラス定義から見た公開範囲を指定**しています。
32
32
  privateは継承関係無く同一クラス内のみ、protectedは継承関係にある派生クラス側への許可のみで、そのためにfriend宣言もクラス定義間の条件付けになっています。
33
33
  このために、派生クラス側の private な指定には、基底クラス側からはアクセスできません。
34
- 基底クラス側に処理を公開する方法は、private宣言か、friend宣言しかありません。
34
+ 基底クラス側に処理を公開する方法は、public宣言か、friend宣言しかありません。

1

結論を追記

2015/05/05 02:58

投稿

haru666
haru666

スコア1593

answer CHANGED
@@ -29,4 +29,6 @@
29
29
  ```
30
30
 
31
31
  class の private や protected の宣言は、**クラス定義から見た公開範囲を指定**しています。
32
- privateは継承関係無く同一クラス内のみ、protectedは継承関係にある派生クラスへの許可のみで、そのためにfriend宣言もクラス定義間の条件付けになっています。
32
+ privateは継承関係無く同一クラス内のみ、protectedは継承関係にある派生クラスへの許可のみで、そのためにfriend宣言もクラス定義間の条件付けになっています。
33
+ このために、派生クラス側の private な指定には、基底クラス側からはアクセスできません。
34
+ 基底クラス側に処理を公開する方法は、private宣言か、friend宣言しかありません。