私のコードに問題があります。C++抽象親クラスで子メソッドを呼び出す方法は?
class A{
virtual foo()=0;
}
class B: public A {
foo();
foo2();
operator X(A * a) {a->foo2()} //doesn't work
}
class C: public A {
foo();
foo2();
operator X(A * a) {a->foo2()} //doesn't work.
}
私は仮想クラスとそれを継承する2つのクラスを持っています。そして、Aオブジェクトに作用する演算子Xを、BまたはCのいずれであっても定義する必要があります(Aは抽象であるため、Aではありません)。問題は、オペレータがfoo2()を呼び出すことです。クラスAで書き込むことはできません。どうすればよいですか?
ありがとうございました。これは私の最初の投稿です。
オペレータの署名を 'X(B * a)'に変更してください。 –
'foo2()はクラスAの一部ではないからです。 –
私は変更できませんオペレータ署名。私はオペレータXの仕事をB、Cのいずれにしても持っていなければなりません。私はAとしてしか見ません。 – Student000