派生クラスメンバー変数には、基本クラス変数を使用してアクセスする必要があります。基本クラス静的変数を通じて派生クラスメンバーにアクセスする必要があります
Class A{
};
Class B:public A {
int data;
};
は今、私はこの
A *pb = new B()
pb->data = 10;
のような何かをする必要がありますが、問題は、私はそれwihtout派生メンバクラスにアクセスすることはできませんです。
と私はそれを仮想関数で動作させる方法を知っています。
ありがとう、本当にありがとうございます。
+1ただし、キャストは安全ではないと指定する必要があります。 –
ええ、実際には私のコードにはこのような状況はありません。しかし、もし私がこのようなことをしなければならないかどうか疑問に思っていました....しかし、それはどうやって設計が間違っているのでしょうか?つまり、派生したすべてのクラスメンバーは、または仮想関数を介して??? – howtechstuffworks
@howtechstuffworksは、親クラスから派生クラスメンバーにアクセスすると何かが間違っていることを意味します。親は実行可能なオブジェクトであり、純粋な仮想クラスでない限り、派生オブジェクトなしで存在できる必要があります。それを行う正しい方法は、親クラスレベルで定義された仮想関数を使用することです。 – littleadv