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

回答編集履歴

1

加筆

2022/07/22 00:00

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -2,3 +2,27 @@
2
2
 
3
3
  「特定のクラスにのみprivate/protectedへのアクセスを許したい」
4
4
  なら friend が使えます。
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
+ ```