FooとBazから継承するクラスWaldoを考えてみましょう。
class Waldo : public Foo, public Baz {
...
};
Waldoの新しいインスタンスを作成するとき:
Waldo *w = new Waldo;
FooおよびBazコンストラクターは呼び出されますか?それらがデフォルトで呼び出されない場合、クラス宣言またはWaldoコンストラクターの宣言/定義でそれらを強制的に呼び出す簡単な方法はありますか?
(コンストラクターチェーンを実行しようとしているようですが、C ++はそれを実行していないと言われています。わかりません。)
私がやろうとしているのは、さまざまなクラス宣言に「注釈を付ける」ことです。注釈により、(とりわけ)注釈付きクラスのインスタンスが注釈クラスによって維持されるリストにリンクされます。これにより、たとえば、Baz-natureを持つすべてのオブジェクトのリストをたどり、特定の操作を適用することができます。Baz-natureを持つオブジェクトのリストにインスタンスを追加したことを覚えているかどうかを心配する必要はありません。これは、コンストラクターはそれを自動的に行いました。