インスタンスを持つ |
ポインタを持つ |
参照を持つ |
class A_Class{
B_Class B;
};
|
class A_Class{
B_Class* pB;
};
|
class A_Class{
B_Class& rB;
};
|
A_Classのインスタンスが存在する間はずっとB_Classのインスタンスも存在する。
逆にB_Classのインスタンスがなくなってしまえば、A_Classは機能しなくなるような場合に
用いられる。
|
A_Classのインスタンスが存在する間も、B_Classのインスタンスが存在する場合と
存在しない場合があるような場合に用いられる。
|
B_Classのインスタンスを複数のA_Classのインスタンスが使い回す場合に用いられる。
この場合、B_Classのインスタンスの寿命がA_Classのインスタンスの寿命よりも
永いことが保証されていないと危険である。
|
例)自動車クラスはエンジンクラスを包含するなど。
(この場合、エンジンがなくなれば自動車ではなくなる)
|
例)自動車クラスは運転手クラスを包含するなど。
(この場合、運転手がいてもいなくても、自動車は自動車であることにかわりはない)
|
|