私を助けてください。私は本当にポリモーフィズムが得意ではありません。私は一方を他方から継承したクラスをしなければなりません。
編集:申し訳ありませんが、完全に私の間違い。私でさえ問題を見つけるために約2時間を過ぎました。興味のある方(助けてくれてありがとう)
if (type.compare("TEST1") == 0) result = new Test(ID, database);
if (type.compare("TEST2") == 0) result = new Test(ID, database);
if (type.compare("TOR") == 0) result = new Tor(ID, database);
「==0」は完全に欠落していました。
class A {
public:
void go() {do();}
virtual void do() {printf('A');}
}
class B:public A {
virtual void do() {printf('B');}
}
int main {
A* obj = new B();
obj->go();
}
結果は「B」ではなく「A」になります。どうすれば「B」にすることができますか?
ありがとう。