#include #include using namespace std; struct Base { int v1; // private: //error! int v3; public: // 显示声明public int v2; virtual void print() { printf("%s\n", "Base"); }; Base() { cout << "Base construct" << endl; }; virtual ~Base() { cout << "Base deconstruct" << endl; }; }; struct Derived : Base { Derived() { cout << "Derived construct" << endl; }; virtual ~Derived() { cout << "Derived deconstruct" << endl; }; public: int v2; void print() { printf("%s\n", "Derived"); }; }; int main() { Base *b = new Derived(); b->print(); delete b; return 0; }