を呼び出すと、だから私は持っているとします上位クラスのメンバC++
Class A
{
void A::DoSomething();
A::A()
};
Class B : public A
{
void B::DoSomething();
B::B()
}
Class C : public A
{
void C::DoSomething();
C::C()
}
B obj1;
C obj2;
void RemoveObjectFromListOrSomethingSimiliar(A objToLookFor)
{
//assuming you found the object, how would you call the top-level DoSomething() (for example B::DoSomething()) instead of the A::DoSomething()?
}
それが意味
を行う場合、私はわからないんだけど[EDIT] [OK]を、それはちょっと働いているそう。それはまだ私を混乱させる基本方法にリダイレクトしていますが。
B obj1;
c obj2;
AList.push_back(obj1);
AList.push_back(obj2);
//later, in another method:
A objInBack = AList.back();
objInBack.DoSomething();
AList.pop_back();
objInBackは、クラス構造のAレベルを参照し、その後、そのレベルのDoSomething()を呼び出します。私はAのメソッドをバーチャルに変更しました。したがって、実行レベルを明示的に定義する方法はありますか?
は、あなたがこの投稿と同じように私の編集を投稿します。私はあなたがしたことがまさに私が必要としているものだと信じていますありがとう – Fuller