vector c_<class A * >;
一部のクラスでプライベートとして宣言されたベクターがあります。このベクトルは、A のサブクラスへのポインターを保持します。たとえば、次のようになります。
some_class::func {
c_.push_back (new A2); // same as A1.
c_.push_back (new A1); //A1 is subclass : class A1 : public A;
(c_.back()->methode1(); //returns a reference of A1's private member x_ for example
}
私が得るエラーは次のとおりです。クラスAで定義されたそのようなメソッドはあり
ません。クラスAで宣言されていないため、クラスA1で宣言されています。私が見る方法はc_.back
、ベクトル c_ の最後の要素を取得することです。これはクラス A1 へのポインターなので、次のように逆参照します。 -> ポインターが (A1) を指すクラスで methode1() を呼び出します。しかし、エラーが発生しますが、どこが間違っているのかわかりません。