いつもありがとうございます
質問
:private
な変数をもつクラスAAA
:BBB
があるとします
cpp
1class AAA{ 2private: 3 int a = 0; 4}; 5 6class BBB{}; 7
継承をつかわずクラスAAA
のコンストラクタがクラスBBB
内のみでしか呼ばれないようにしたいです
またBBB
からAAA
のprivate
メンバ変数にへのアクセスは禁止したいです
ためしたこと
:friend
指定をしたのですが,これではprivate
なメンバ変数のAAA::a
を呼び出せてしまう副作用がでてしまいます
cpp
1class BBB; 2 3class AAA { 4private: 5 AAA() = default; 6 7private: 8 int a = 10; 9 10 friend BBB; 11}; 12 13class BBB { 14public: 15 int get() { 16 AAA a; 17 return a.a;//副作用 private変数A::aにはアクセスできないようにしたい 18 } 19private: 20 AAA a;//ok 21 22}; 23 24int main() { 25 26 BBB b; 27 std::cout << b.get();//10 28 29} 30
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/01 04:21
2021/04/01 05:40