【发布时间】:2010-11-22 22:16:57
【问题描述】:
你能解释一下为什么吗:
int main (int argc, char * const argv[]) {
Parent* p = new Child();
p->Method();
return 0;
}
打印“Child::Method()”,然后:
int main (int argc, char * const argv[]) {
Parent p = *(new Child());
p.Method();
return 0;
}
打印“Parent::Method()”?
类:
class Parent {
public:
void virtual Method() {
std::cout << "Parent::Method()";
}
};
class Child : public Parent {
public:
void Method() {
std::cout << "Child::Method()";
}
};
谢谢, 埃塔姆。
【问题讨论】:
标签: c++ methods polymorphism virtual