#includeusing namespace std;class Father{public: Father() { cout << "我是父类构造函数"; } ~Father() { cout << "我是父类析构函数 "; } virtual void print() { cout << "我是父类的函数"; }public: int f;protected:};class Child: public Father{public: Child() { cout << "我是子类构造函数"; } ~Child() { cout << "我是子类析构函数 "; } void print() { cout << "我是子类的函数"; }public: int c;protected:};int main(){ Father f1; //调用父类的构造函数 Child c1;//先调用 父类的构造函数 再调用子类的构造函数。 cout << endl; cout << "f1.print() :"; f1.print(); //显示调用父类的函数 cout << endl << "c1.print() ::"; c1.print();//显示调用子类的函数 f1.f = c1.f; cout <<"\n我是漂亮的分割线1----------------------"<< endl; Father *f2; Child c2; cout << endl; f2 = &c2; f2->print(); //显示调用子类的函数 cout << "\n我是漂亮的分割线2----------------------" << endl; Father f3; Child *c3 = NULL;// c3 = &f3; c3->c; c3->f; c3->print(); //这种虽然不报错,但是在变异种出现错误,看来没有子类指针这回事 cout << "\n我是漂亮的分割线3----------------------" << endl; system("pause");}