Thinking in C++Vol。1(P-33):
構成には非常に柔軟性があります。新しいクラスのメンバーオブジェクトは通常プライベートであるため、クラスを使用しているクライアントプログラマーはそれらにアクセスできません。これにより、既存のクライアントコードを乱すことなく、これらのメンバーを変更できます。
実行時にメンバーオブジェクトを変更して、プログラムの動作を動的に変更することもできます。次に説明する継承には、コンパイラが継承で作成されたクラスにコンパイル時の制限を課す必要があるため、この柔軟性はありません。
コンポジションで実行時にメンバーオブジェクトを変更するにはどうすればよいですか?
クラス宣言が書かれるときにオブジェクトは含まれていませんか?
class car
{
private:
engine obj;
}
したがって、ここでクラスにはクラスcar
のオブジェクトが含まれていますengine
。実行時にこれをどのように変更できますか?
それとも私はいくつかのポイントを逃していますか?