class Base {
public:
Base() {
print();
}
virtual ~Base() {
}
void show()
{
print();
}
virtual void print() {
std::cout << "Base::print" << std::endl;
}
};
class Drived : public Base {
public:
Drived() {
print();
}
~Drived() {
}
virtual void print()override
{
std::cout << "Drived::print" << std::endl;
}
};
int main(int argc, char *argv[])
{
Drived *b = new Drived();
b->show();
delete b;
return a.exec();
}
res:
Base::print
Drived::print
Drived::print
两次Drived::print