質問内容
以下のコードですがWindowContext()
クラスは利用側ではインスタンスを生成出来なくて、フレームワーク側ではインスタンスを生成出来て参照出来るコードを設計したいです。
知りたいこと
条件: 利用側ではインスタンスを生成できない、クラスを参照出来ない、フレームワーク側ではインスタンスを生成出来る、クラスを参照出来る
行いたい実装: windowContextクラスはフレームワーク側で一つだけインスタンスを生成生成してそれをIOやSpriteRendererなどのといったクラスで利用する場合での実装方法がわかりません。
現状
フレンドクラスを利用してフレンドのクラスしかインスタンスを生成出来ないようにしたのですが行いたいことを踏まえたコードの実装方法がわかりません。
Main.cpp
vpp
1// Online C++ compiler to run C++ program online 2#include <iostream> 3 4class WindowContext 5{ 6 7 public: 8 // static WindowContext *window; 9 WindowContext *window; 10 private: 11 WindowContext() 12 { 13 std::cout<<"WindowContext"<<std::endl; 14 window = this; 15 } 16 17 friend class IO; 18}; 19 20//WindowContext *WindowContext::window = NULL; 21 22class IO 23{ 24 public: 25 IO() 26 { 27 window = new WindowContext(); 28 29 std::cout<<window->window<<std::endl; 30 } 31 32 33 34 private: 35 WindowContext *window; 36}; 37 38 39 40int main() { 41 //WindowContext::window = NULL; 42 43 IO *io1 = new IO(); 44 IO *io2 = new IO(); 45 return 0; 46}
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/08 04:51
2023/05/08 04:52
2023/05/08 04:56