次の問題があります。私は C++ で継承構造をコーディングするのに忙しいです。簡単に言えば、これが私がやろうとしていることです。クラス A は基本クラスで、クラス B と C は継承されたクラスです。クラス B と C には、それぞれ異なる固有のメンバー関数があります。
次に、ブースト スマート ポインター ライブラリを使用して、次のようにクラス タイプ A の共有ポインターのベクターを作成します。
class A{
A();
virtual print();
}
class B : public A{
B();
virtual print();
}
class C{
C();
virtual print();
void uniqueFunc();
}
int main(){
vector<shared_ptr<A> > myA;
shared_ptr<B> myB;
shared_ptr<C> myC;
myA.push_back(myB);
myA.push_back(myC);
}
これで、ベクター内のメンバーのタイプをチェックするメソッドができました。これは問題ではありません。私の質問は、ベクトル内のクラス型 C のメンバーに対して uniqueFunc を呼び出す方法です。私はダウンキャストする必要がありますか?または、仮想機能を作成する必要がありますか。ただし、uniqueFunc はクラス C に固有である必要があります。メンバーのコピーを作成することは避け、ベクトル内のメンバーを直接変更したいと考えています。