回答編集履歴
3
コメントの追記
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
記述のミスを訂正
answer
CHANGED
@@ -31,4 +31,4 @@
|
|
31
31
|
class の private や protected の宣言は、**クラス定義から見た公開範囲を指定**しています。
|
32
32
|
privateは継承関係無く同一クラス内のみ、protectedは継承関係にある派生クラス側への許可のみで、そのためにfriend宣言もクラス定義間の条件付けになっています。
|
33
33
|
このために、派生クラス側の private な指定には、基底クラス側からはアクセスできません。
|
34
|
-
基底クラス側に処理を公開する方法は、
|
34
|
+
基底クラス側に処理を公開する方法は、public宣言か、friend宣言しかありません。
|
1
結論を追記
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宣言しかありません。
|