c++ 学习 -- 复制构造函数
来源:互联网 发布:杭州数据分析培训机构 编辑:程序博客网 时间:2024/05/16 01:24
复制构造函数是个非常微妙的函数,如果不能深刻理解它,可是会出现很多莫名奇妙的错误,下面通过一个程序来详细的介绍其中的奥妙。
1 c++中的隐士成员函数
(1)默认构造函数,如果没有定义
(2)复制构造函数,如果没有定义
(3)赋值操作符,如果没有定义
(4)默认析构函数,如果没有定义
(5)地址操作符,如果没有定义
2 重点讲一下复制构造函数
复制构造函数讲一个对象复制 到一个新建的对象中,也就是说,它用于初始化的过程中,而不是常规的赋值过程中。
className(const className &);
(1)复制构造函数的功能
逐个复制非静态成员,复制的是值。这就会导致一个问题,在对象中有指针时,只是复制的指针的地址,而没有复制实际的内容,这时,我们必须显示的定义复制构造函数来解决这个问题。
(2)复制构造函数并没有在构造函数中增加新建对象的个数,但是他却会调用析构函数,这就会导致你在构造函数中的计数不准确。
(3)就像(1)中提到的,它只是复制了指针的地址,因此,对象调用析构函数的时候,最先调用析构函数的那个对象释放了指针指向的空间,但是当其他对象再次调用析构函数的时候,还会去释放这段空间,这就导致了同一个空间被delete两次,同常表现为乱码。
- 【学习C++】学习C++ -> 复制构造函数
- c++ 学习 -- 复制构造函数
- C++: 复制构造函数
- 学习复制构造函数
- 复制构造函数学习
- 复制构造函数(C++学习)
- 学习C++ -> 复制构造函数
- 复制构造函数学习笔记
- C++对象模型-复制构造函数的构造操作
- c++-拷贝构造函数(复制构造函数)
- 复制构造函数与赋值重载(c++)
- c++primer 3/12----复制构造函数
- C++_避免调用复制构造函数
- C++(22)复制构造函数
- C++:复制构造函数___浅拷贝
- C++:复制构造函数的应用
- 【C++】This指针和复制构造函数
- 【C\C++学习】之十八、C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)
- [英语阅读]美汽车业洗牌 全球股市跳水
- 回来了
- 小心背后有鬼 watch your back
- 许巍邀请朴树做演唱会做特邀嘉宾
- [双语阅读]日本传统男士内衣“褌”成女性新宠
- c++ 学习 -- 复制构造函数
- sharepoint site template总结(1)-------自定义stie template
- 俄文编码与gb2312
- JAVA程序员之路
- __align的用法
- gcc问题之一
- 随笔
- ASP.NET底层架构探索之处理请求
- Installing Oracle 10g on RHEL AS 4 Step-by-Step