第十天 构造函数,拷贝构造函数,析构函数的调用
2016-08-14 13:37
225 查看
碰到这三种函数的调用总是头昏,就在VS上写了代码实测一下:
结果:
分析:
一、对于单纯声明类指针并不调用构造函数。
二、在非初始化情况下使用等号,内部操作依次为:1.对右值构造临时类对象,这里是拷贝构造函数;2.调用"="操作符;3.析构临时类对象。
三、如果是初始化用等号,直接调用拷贝构造函数即可。
#include <iostream> using namespace std; class Myclass { public: Myclass() { cout << "1"; } Myclass(Myclass &temp) { cout << "2"; } Myclass& operator= (Myclass temp) { cout << "3"; return *this; } ~Myclass() { cout << "4"; } }; int main() { Myclass a1, *a2; cout << endl; Myclass a3; a1 = a3; cout << endl; Myclass &a4 = a1; cout << endl; Myclass a5 = a1; cout << endl; return 0; }
结果:
分析:
一、对于单纯声明类指针并不调用构造函数。
二、在非初始化情况下使用等号,内部操作依次为:1.对右值构造临时类对象,这里是拷贝构造函数;2.调用"="操作符;3.析构临时类对象。
三、如果是初始化用等号,直接调用拷贝构造函数即可。
相关文章推荐
- 关于构造函数,拷贝构造函数与析构函数的自动调用的问题分析
- 构造函数、拷贝构造函数、赋值函数、析构函数的调用顺序
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
- 十、构造函数和析构函数(四) 拷贝构造函数、默认拷贝构造函数、拷贝构造函数调用几种情况、深拷贝浅拷贝、构造函数和=操作符区别、禁止对象拷贝
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 构造函数、拷贝构造函数和析构函数的的调用时刻及调用顺序
- 深入C++中构造函数、拷贝构造函数、赋值操作符、析构函数的调用过程总结
- 总结c++类的构造函数 拷贝构造函数 析构函数 赋值运算符重载的特点以及函数调用顺序
- 基础备忘:关于构造函数、拷贝构造函数、析构函数
- 类string的构造函数、拷贝构造函数和析构函数
- C++ 《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数
- C++构造 函数,析构函数,拷贝构造函数,赋值构造函数,一个内存错误例子!
- string类的构造函数,析构函数,拷贝构造函数和赋值构造函数
- onEnter , onExit 和 构造函数,析构函数在调用顺序上面的区别
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定