回答編集履歴
1
加筆
test
CHANGED
@@ -3,3 +3,27 @@
|
|
3
3
|
「特定のクラスにのみprivate/protectedへのアクセスを許したい」
|
4
4
|
なら friend が使えます。
|
5
5
|
|
6
|
+
```C++
|
7
|
+
#include <iostream>
|
8
|
+
|
9
|
+
class A {
|
10
|
+
friend class B;
|
11
|
+
protected:
|
12
|
+
void call() { std::cout << "A::call()\n"; }
|
13
|
+
};
|
14
|
+
|
15
|
+
class B {
|
16
|
+
public:
|
17
|
+
void funcB() { call(); } // <- ok
|
18
|
+
void funcA(A a) { a.call(); }
|
19
|
+
private:
|
20
|
+
void call() { std::cout << "B::call()\n"; }
|
21
|
+
};
|
22
|
+
|
23
|
+
int main() {
|
24
|
+
A a; B b;
|
25
|
+
b.funcA(a);
|
26
|
+
b.funcB();
|
27
|
+
}
|
28
|
+
```
|
29
|
+
|