2

次のような一連のクラスを書き留めたいと思います。

  • あらゆる種類のオブジェクトとそのリレート ゲッターをラップする純粋な仮想クラス。
  • 必要なオブジェクトの種類ごとに 1 つまたは複数のクラスを作成し、仮想オブジェクトを拡張して getter をオーバーライドして特殊化します。

ラッパーのテンプレート クラス ソリューションはこのケースに適しているようですが、次の 2 つの異なるコンテキストで使用する必要があります。

  • 最初のものはラッパーの実装を認識していません。この場合、 ( Javaのように) 任意のクラス名を表すWrapper<AnyObj> var;withを宣言する必要があります。私の知る限り、これは C++ では実行できません。AnyObj?
  • 2 つ目は、特定のラッパー実装に制限されています。この場合、(ダウンキャストするのではなく) ラップされたオブジェクトを正確な型で返すゲッターが必要です。

私が正しければ、テンプレート クラスを使用できません。さらに、ラッパーにはprotected: T* wrappedObjectメンバーがありません。

Java のアプローチにとらわれているのか、最初から間違った考えを持っているのか、それとも何かが欠けているのかはわかりません。

どんな提案でも大歓迎です。

4

0 に答える 0