たとえば、次のようなクラスがあるとします。
#import "B.h"
class A
{
B object;
};
A オブジェクトを作成すると、B のコンストラクターが呼び出されますか?
たとえば、次のようなクラスがあるとします。
#import "B.h"
class A
{
B object;
};
A オブジェクトを作成すると、B のコンストラクターが呼び出されますか?
はい、既定のコンストラクターが呼び出されるか (存在する場合)、または の既定のコンストラクターがない場合はコンパイラ エラーが発生しますB
。
はい。これをテストする 1 つの方法は、コンストラクターにいくつかの単純な cout 呼び出しを配置して、コンストラクター呼び出しが発生するのを監視することです。
はい、メンバーコンストラクターは、含まれているクラスの宣言順に呼び出されます。
このルールは両方の方法に適用され、クラス 'A のデストラクタを呼び出すと、そのメンバーのデフォルトのデストラクタが呼び出されます。