C++拷贝构造函数大全
来源:互联网 发布:上海it helpdesk招聘 编辑:程序博客网 时间:2024/04/30 10:24
//构造函数
/*定义:是一个特殊的成员函数,对对象进行初始化,构造函数名字必须与类名同名,无类型,无返回值,
不需要用户调用,也不能被用户调用,在建立对象时自动执行
*/
class box
{
public:
box();//默认构造函数,什么也不做,若用户不显示声明,创建对象时,自动执行
box(int, int, int);//声明带参数的构造函数
box(int l=10, int w=10, int h=10);/*在声明构造函数时指定默认参数
构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,
如果用户不指定实参值,编译系统就使形参取默认值
注意:应在声明函数时指定默认值,而不能只在定义构造函数时指定默认值*/
int volume;
private:
int length;
int width;
int height;
};
box::box(int l, int w, int h):length(l), width(w),height(h)
{}/*用参数初始化表对数据进行初始化,若数据成员是数组,则应当在构造函数的
函数体中用语句对其赋值,不能在参数初始化表中对其初始化*/
box::box(int l, int w, int h)//在类外定义带参数的构造函数
{
length = l;
width = w;
height = h;
}
/*定义拷贝(复制)构造函数
只有单个形参,而且该参数是对本类对象的引用(常用const修饰),
拷贝构造函数是特殊的构造函数,由编译器自动调用,它是构造函数
的重载,它的参数必须使用同类型对象的引用传递(为什么?),
如果没有显示定义,系统会自动合成一个默认的拷贝构造函数,会依
次对拷贝类的数据成员完成初始化*/
box::box(const box&b)
{
length = b.length;
width = b.width;
height = b.height;
}
/*定义:是一个特殊的成员函数,对对象进行初始化,构造函数名字必须与类名同名,无类型,无返回值,
不需要用户调用,也不能被用户调用,在建立对象时自动执行
*/
class box
{
public:
box();//默认构造函数,什么也不做,若用户不显示声明,创建对象时,自动执行
box(int, int, int);//声明带参数的构造函数
box(int l=10, int w=10, int h=10);/*在声明构造函数时指定默认参数
构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,
如果用户不指定实参值,编译系统就使形参取默认值
注意:应在声明函数时指定默认值,而不能只在定义构造函数时指定默认值*/
int volume;
private:
int length;
int width;
int height;
};
box::box(int l, int w, int h):length(l), width(w),height(h)
{}/*用参数初始化表对数据进行初始化,若数据成员是数组,则应当在构造函数的
函数体中用语句对其赋值,不能在参数初始化表中对其初始化*/
box::box(int l, int w, int h)//在类外定义带参数的构造函数
{
length = l;
width = w;
height = h;
}
/*定义拷贝(复制)构造函数
只有单个形参,而且该参数是对本类对象的引用(常用const修饰),
拷贝构造函数是特殊的构造函数,由编译器自动调用,它是构造函数
的重载,它的参数必须使用同类型对象的引用传递(为什么?),
如果没有显示定义,系统会自动合成一个默认的拷贝构造函数,会依
次对拷贝类的数据成员完成初始化*/
box::box(const box&b)
{
length = b.length;
width = b.width;
height = b.height;
}
0 0
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- c++"拷贝构造函数
- C++: 拷贝构造函数
- 【C++】拷贝构造函数
- c++::拷贝构造函数
- 【C++】:拷贝构造函数
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- C++拷贝构造函数大全
- C++_拷贝构造函数
- C++_拷贝构造函数
- 拷贝构造函数(C++)
- 拷贝构造函数(C++)
- C/C++ 拷贝构造函数
- c++(拷贝构造函数)
- 5.c++-拷贝构造函数(深拷贝,浅拷贝)
- c++_拷贝构造函数/浅拷贝/深拷贝
- 蓝桥杯 2012 3 拼音字母
- spring boot 入门示例代码
- Groovy批处理命令
- 初学Android:数据存储技术小结
- Objective-C 数据持久化
- C++拷贝构造函数大全
- UVa 213 信息解码Message Decoding
- JavaScript面试大全1
- 设备管理命令
- AngularJS 国际化 支持记录语言刷新后语言不变
- Andorid App程序启动流程
- js中的正则表达式入门
- shell基础
- 波浪图