您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记(4)——派生类的构造函数和析构函数

2008-03-11 21:21 691 查看
陆续贴出学习C++时做的笔记
本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!



例1:观从派生类向基类传递参数




/**//************************************************************************


* 派生类的构造函数和析构函数


************************************************************************/


#include <IOSTREAM.H>


//基类


class CBase




...{


int x;


public:




CBase(int n)...{cout<<"the base class constructor!"<<endl; x=n; }




~CBase() ...{cout<<"the base class deconstructor!"<<endl;}




virtual void showx()...{cout<<"in the base class x = "<<x<<endl;} //此处有没有virtual效果一样


};




//派生类


class CDerive:public CBase




...{


int y;


public:




CDerive(int n,int m):CBase(m)...{ cout<<"the derived class constructor!"<<endl; y=n; }




~CDerive()...{cout<<"the derived class deconstructor!"<<endl;}




void showy()...{ cout<<"in the derived class y = "<<y<<endl; }


};


main()




...{ CDerive obj1(123,456);


obj1.showx();


obj1.showy();


CBase obj2(1234);


obj2.showx();


return 0;


}


运行结果:






例2:调用派生类的构造函数时默认调用基类的构造函数




/**//************************************************************************


* 派生类的构造函数和析构函数


************************************************************************/


#include <IOSTREAM.H>


//基类


class CBase




...{


int x;


public:




CBase()...{ cout<<"the base class constructor!"<<endl; x=100;}




~CBase()...{cout<<"the base class deconstructor!"<<endl;}




virtual void showx()...{cout<<"in the base class x = "<<x<<endl; } //此处有没有virtual效果一样


};




//派生类


class CDerive:public CBase




...{


int y;


public:




CDerive()...{cout<<"the derived class constructor!"<<endl; y=200;}




~CDerive()...{cout<<"the derived class deconstructor!"<<endl;}




void showy()...{ cout<<"in the derived class y = "<<y<<endl; }


};




main()




...{


CDerive obj1;


obj1.showx();


obj1.showy();


CBase obj2;


obj2.showx();


return 0;


}


运行结果:




例3:派生类和基类同名成员函数的调用




/**//************************************************************************


* 派生类的构造函数和析构函数


************************************************************************/


#include <IOSTREAM.H>


//基类


class CBase




...{


int x;


public:




CBase()...{ cout<<"the base class constructor!"<<endl; x=100;}




~CBase()...{cout<<"the base class deconstructor!"<<endl;}




virtual void show()...{cout<<"in the base class x = "<<x<<endl;} //此处有没有virtual效果一样


};




//派生类


class CDerive:public CBase




...{


int y;


public:




CDerive()...{cout<<"the derived class constructor!"<<endl; y=200;}




~CDerive()...{cout<<"the derived class deconstructor!"<<endl;}




void show()...{cout<<"in the derived class y = "<<y<<endl;}


};




main()




...{


CDerive obj1;


obj1.CBase::show();


obj1.show();


CBase obj2;


obj2.show();


return 0;


}


运行结果:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐