C++之拷贝构造函数
来源:互联网 发布:linux api 中文手册 编辑:程序博客网 时间:2024/05/11 19:08
通过按值传递的方式传递一个对象时,就创立了一个新对象,函数体内的对象是由函数体外的原来存在的对象传递的。
当编译器需要从现有的对象创建新对象时,可以通过定义自己的函数来实现,因为需要创建新的对象,因此这个函数应该是构造函数,并且传递给这个函数的单一参数必须是创立的对象的源对象,但是该对象不能以按值传递的方式传入构造函数,而是需要以引用的方式来传递,可以使用源对象的引用,这个就是拷贝构造函数
拷贝构造函数的形式是 X(X&),其中,X是类名
使用了拷贝构造函数,就使得编译器在创建新对象时,避免使用位拷贝
默认的拷贝构造函数执行的是位拷贝
仅当准备用按值传递的方式传递类对象时,才需要拷贝构造函数,但是如何避免按值传递呢,那就是将拷贝构造函数声明为私有的,这样就可以防止按值传递。
#include <iostream>using namespace std;class NoCC{ int i; NoCC(const NoCC&); //声明public: NoCC(int ii = 0) : i(ii) { }};void f(NoCC){}int main(){ NoCC n; //f(n); //error 会调用拷贝构造函数,但是构造函数是私有的,无法调用 //NoCC n2 = n; //error, 同上 //NoCC n3(n); //error, 同上}
1 0
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- c++"拷贝构造函数
- C++: 拷贝构造函数
- 【C++】拷贝构造函数
- c++::拷贝构造函数
- 【C++】:拷贝构造函数
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- C++_拷贝构造函数
- C++_拷贝构造函数
- 拷贝构造函数(C++)
- 拷贝构造函数(C++)
- C/C++ 拷贝构造函数
- c++(拷贝构造函数)
- 【原创】大话C、C++之 危险的拷贝构造函数
- C++/CLI思辨录之拷贝构造函数
- C++/CLI思辨录之拷贝构造函数
- 适配器模式实例
- D3D11地形渲染教程四之TerrainLighting
- 历史上的三次数学危机
- (转)HTML中CSS的基本使用方法
- VS (1)VS目录含义
- C++之拷贝构造函数
- 协方差矩阵的几何解释
- 前端开发中表格table单元格高度或者行高的设置
- 将数组对象变成json字符串
- 如何在HTML5页面中使用鼠标滚轮事件
- usaco3.2.6 Sweet Butter
- python数据结构学习笔记-2016-12-25-01-2-3 树
- Pyqt5 弹窗
- 三种情况必须在类构造函数初始化列表初始化