C++中构造函数和析构函数
来源:互联网 发布:c语言字符串长度排序 编辑:程序博客网 时间:2024/06/03 23:46
拷贝构造与赋值构造函数的区别:http://blog.csdn.net/sinhua_ren/article/details/1704884
classA a;
classA b=a; 拷贝构造;相当于classA b(a) ,在声明的时候其实b还没有分配内存,所以b要构造
b=a;赋值构造--因为b已经有了,只是按照a来修改b中的内容而已
结果:
construct A 1
copy construct A 2
construct A 3
copy construct A 4
unconstruct A 3
unconstruct A 2
unconstruct A 4 // 应为函数func(pa) 返回后没有用了,就里面析构了,在tmp2 (index=5)前面就析构了
construct A 5
unconstruct A 5
unconstruct A 1
如果 39行改为:ParentA tmp1=func(pa);
结果:
construct A 1
copy construct A 2
construct A 3
copy construct A 4
unconstruct A 3
unconstruct A 2
construct A 5
unconstruct A 5
unconstruct A 4 // 应为函数ParentA tmp1=func(pa) ; tmp1接收了,所以析构在tmp2(index=5)后面才析构
unconstruct A 1
如果
void main(char **argv, int arg)
{
ParentA pa(++static_index);
ParentA tmp1=func(pa); // 这行与下一行 func(pa); 结果完全一样 ,tmp1 的index=4
// func(pa); // index=4;
return;
}
结果:
construct A 1
copy construct A 2
construct A 3
copy construct A 4
unconstruct A 3
unconstruct A 2
unconstruct A 4
unconstruct A 1
- 构造函数和析构函数【c++】
- [c++]构造函数和析构函数
- 【C#】构造函数和析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++:构造函数和析构函数
- <C++>析构函数、虚析构函数和构造函数
- 《Effective C++》不要在构造函数和析构函数中调用虚函数
- 【C/C++】构造函数和析构函数
- C/C++——构造函数和析构函数
- C++中构造函数、析构函数和虚函数
- C/C++——构造函数、复制构造函数和析构函数的执行时刻
- 浅谈C++--绝不在构造和析构函数中调用virtual函数
- c语言中构造函数和析构函数抛出异常
- C++_构造函数和析构函数
- C#の构造函数和析构函数
- C++_构造函数和析构函数
- 学习C++——构造函数和析构函数
- 写在博客开始前
- uva live 3516 Exploring Pyramids 区间DP
- 黑马程序员
- 杭电ACM1302——The Snail
- 黑马程序员---OC基础补充---补充:copy与mutableCopy、单例模式
- C++中构造函数和析构函数
- 航电 2212 java AC
- Two Sum
- DispatcherServlet的介绍
- UNIX环境高级编程之第3章:文件I/O
- 网易云课堂 浙江大学-陈越、何钦铭-数据结构基础习题集(自测)
- Just a Hook
- gdb 多线程调试 http://www.cnblogs.com/xuxm2007/archive/2011/04/01/2002162.html
- 安装并配置sonar