C++でのインスタンスに関する質問です。
インスタンスをヘッダファイル内で初期化することと、コンストラクタ等で初期化することに違いはあるのでしょうか?
例えば、MyClassA、MyClassB、MyClassCがあるとします。(それぞれのクラスの処理内容は省略します。)
MyClassBとMyClassCをMyClassAで利用するためにインスタンス化をする場合
MyClassA.h
#include "MyClassB.h" #include "MyClassC.h" class MyClassA { public: MyClassA(); private: MyClassB* myClassB = new MyClassB(this); //ここで先に初期化 MyClassC* myClassC; //宣言だけしてcpp内で初期化 }
MyClassA.cpp
#include "MyClassC.h" MyClassA::MyClassA(){ myClassC = new MyClassC(this); }
このMyClassBとMyClassCのインスタンスの初期化方法の違いでどちらが良いなどはあるのでしょうか?
様々なソースコードを読んでいると、ヘッダ内でインスタンス化と同時に行っているものもあればソース内で行っているものもありました。
調べてみても特にそういった話が見当たらないので、疑問に思いました。
これに関しては個人の好みの問題なのでしょうか?
また、調べている際に「インスタンス化」と「インスタンス生成」という2つの言葉があったのですが、この2つの違いはあるのでしょうか?
回答3件
あなたの回答
tips
プレビュー