第十周阅读程序(7):继承与派生

来源:互联网 发布:sqlserver guid 编辑:程序博客网 时间:2024/04/28 13:35

代码:

#include <iostream>using namespace std;class Part  //部件类{public:    Part();    Part(int i);    ~Part();private:    int val;};Part::Part(){    val=0;    cout<<"调用Part的默认构造函数:"<<val<<endl;}Part::Part(int i){    val=i;    cout<<"调用Part的构造函数: "<<val<<endl;}Part::~Part(){    cout<<"调用Part的析构函数: "<<val<<endl;}class Whole: public Part{public:    Whole();    Whole(int,int,int,int);    ~Whole();private:    Part one;    Part two;    int data;};Whole::Whole(){    data=0;    cout<<"调用whole的默认构造函数: "<<data<<endl;}Whole::Whole(int p, int i,int j,int k):Part(p),one(j),two(i),data(k)  //问题2{    cout<<"调用whole的构造函数: "<<data<<endl;}Whole::~Whole(){    cout<<"调用whole的析构函数: "<<data<<endl;}void f(){    Whole w1;    Whole w2(1,2,3,4);}int main(){    f();    return 0;}


运行结果:


学习心得:

调用fun函数,part是whole基类,加上whole里有两个子类,执行三次part结构函数,再执行一次whole的结构函数,声明有参数的w2,p=1,one=3,two=2为part类,调用part结构函数,k=4为whole类,调用whole类结构函数,先结构的后析构,再一次输出析构函数。



0 0