请帮帮我。我真的不擅长多态。我必须从另一个继承一个类。
编辑:对不起,完全是我的错误。甚至我已经过了大约 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();
}
结果是“A”而不是“B”。我怎样才能使它成为'B'?
谢谢。