C++派生类的构造函数和析构函数
来源:互联网 发布:bp神经网络算法实现 编辑:程序博客网 时间:2024/05/21 17:11
如果需要对派生类新增的初始成员进行初始化,就必须对派生类添加新的构造函数。由于基类的构造函数和析构函数不能继承,因此,对继承类基类原有的数据成员的初始化,必须调用基类的构造函数来完成。
在定义派生类时需要解决两个问题:
1.派生类的构造函数如何定义。2.派生类的构造函数中如何调用基类的构造函数。
例子:
#include <iostream>using namespace std;class A{public:A(int a = 0, int b = 0)//含有默认参数的构造函数{x = a;y = b;cout<<"正在调用A类(基类)的构造函数..."<<endl;}~A() { cout<<"正在调用A类(基类)的析构函数..."<<endl; }protected:int x;int y;};class B : public A{public:B(int a = 0, int b = 0, int c = 0) : A(a,b) //显示调用基类的构造函数{z = c;cout<<"正在调用B类(派生类)的构造函数..."<<endl;}~B() { cout<<"正在调用B类(派生类)的析构函数..."<<endl; }void Display(){cout<<"x = "<<x<<endl;cout<<"y = "<<y<<endl;cout<<"z = "<<z<<endl;}protected:int z;};int main(){B Unknown(2013,12,30);Unknown.Display();return 0;}
程序运行显示结果:
正在调用A类(基类)的构造函数...
正在调用B类(派生类)的构造函数...
x = 2013
y = 12
z = 30
正在调用B类(派生类)的析构函数...
正在调用A类(基类)的析构函数...
Press any key to continue
转载请保留原文地址:http://blog.csdn.net/nonknown/article/details/17683653
0 0
- [c++]派生类的构造函数和析构函数
- c++---派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- 关于派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- C++派生类的构造函数和析构函数
- C++ 派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- C++派生类的构造函数和析构函数
- c++派生类的构造函数和析构函数
- C++ 派生类的构造函数和析构函数
- C++派生类的构造函数和析构函数
- 派生类的构造函数和析构函数(C++)
- 派生类构造函数和析构函数的调用顺序(C++)
- C++ 派生类的构造和析构函数
- C++ 派生类的构造和析构函数
- 12306上的分布式内存数据技术GemFire
- 2014元旦放假通知
- innodb mysql的锁和索引
- 使用FreeMarker模板引擎作为Struts2的视图技术
- 函数式编程
- C++派生类的构造函数和析构函数
- spring碎碎念(三)
- jQuery - noConflict() 方法(二十八)
- 修改dialog上ico hwnd ---- hinstance
- SQL优化工具
- 猜数字游戏练习do-while循环
- jquery api :animated Selector
- FileZilla连接成功,目录无法显示
- Linux防火墙与数据库