你能解释一下为什么:
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()";
}
};
谢谢,埃塔姆。