C++ 类 构造函数
- 初始化构造函数
- 复制构造函数
- 类型转换构造函数
初始化构造函数
作用:初始化
- 可以重载
- 可以有缺省
- 没有定义,调用无参默认构造函数
构造函数名与类名相同
放在public里
class test
{
public:
test()
{
//your code
}
}
复制构造函数
用来进行同类对象直接的复制
基本形式:
class test
{
public:
test(test &){} //第一种
test(const test &){} //第二种
}
以下几种情况复制构造函数会被调用:
test a = b
用一个对象去初始化另一个- 函数参数时一个对象,函数被调用时
- 函数返回值时对象
为什么要自己写复制构造函数?
类型转换构造函数
例子
class test
{
public:
double a,b;
test(int i) //类型转换构造函数
{
a = i;
b = 0;
}
};
int main()
{
test c1 = 1;
}
c1= 1被执行时,先生成了一个临时对象,并调用类型转换构造函数初始化这个对象,再用这个对象对c1进行赋值。