构造函数与析构函数
来源:互联网 发布:c语言二分搜索代码实现 编辑:程序博客网 时间:2024/05/01 06:37
构造函数:主要作用就是为对象初始化。有一点要说的是,在继承体系汇总,如果在构造函数中,如果没有指定基类的构造函数,那么编译器会在构造函数开头加入,基类的默认构造函数,这样就可以初始化基类对象部分;
析构函数:对于析构函数,要说的多点,实际也不太复杂,就是加入了virtual;使其具有了多态性质;
#include <IOSTREAM>using namespace std;class A{public:~A(){cout<<"sss"<<endl;};protected:private:};class B:public A{public:B(){}~B(){cout<<"aaa"<<endl;}};void main(){B *b=new B;delete b;}
在这个示例中输出:aaa \n sss;也就是先调用子类,再调用基类,也就是在子类的析构函数中,在析构函数结尾,加入了基类的析构函数;
class A{public:~A(){cout<<"sss"<<endl;};protected:private:};class B:public A{public:B(){}~B(){cout<<"aaa"<<endl;}};void main(){A *a=new B;delete a;}这个中输出:sss,也就是只调用了基类的析构函数,因为基类指针只会调用基类代码空间的代码(如果没有虚函数);class A{public:virtual ~A(){cout<<"sss"<<endl;};protected:private:};class B:public A{public:B(){}virtual ~B(){cout<<"aaa"<<endl;}};void main(){A *a=new B;delete a;}这个输入:aaa \n sss;由于虚函数,所有就调用子类的析构函数,就得到与例1的结构;
这里面主要有一点:编译器为我们做了很多事情,为我们加入很多代码;就像全局变量,就是编译器在main函数开始为我们加入初始化,在main结尾,加入析构函数;(参考:深度探索C++模型)
- 构造函数与析构函数
- 构造函数与析构函数
- c#构造函数与析构函数
- 构造函数与析构函数
- 构造函数与析构函数(整理)
- 构造函数与析构函数
- 构造函数与析构函数
- c#构造函数与析构函数
- 构造函数与析构函数研究
- 构造函数与析构函数(读书笔记)
- 构造函数与析构函数
- 构造函数与析构函数
- 构造函数与析构函数
- 构造函数与析构函数
- C++ 构造函数与析构函数
- 构造函数与析构函数
- 构造函数与析构函数
- 使用构造函数与析构函数
- 如果 结局没有你 我也会很好
- poj3295 http://poj.org/problem?id=3295
- Friendly name 2 unicode
- oracle job interval规则
- MySQL 数据库怎样把一个表的数据插入到另一个表
- 构造函数与析构函数
- Android 边用边学 之 px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别
- 爱的太深终究会是伤 莫沧分享伤感日志
- c语言复习笔记——sizeof()
- 字母加密
- 机器学习 & 数据挖掘 —— 资料收集
- 心在隐隐作痛,泪在蠢蠢欲动
- sql2000个人版semobj.rll有病毒
- c语言复习笔记——内存分配问题