您的位置:首页 > 编程语言 > C语言/C++

cpp——与c之不同——初始化

2017-03-13 21:05 204 查看

初始化

c

支持复制初始化,不支持直接初始化
void init()
{
int i1 = 5;
//int i2(8);
}

c++

支持复制初始化,支持直接初始化
引入直接初始化主要为了支持类的初始化(构造函数),c++为了保持类型统一性,对非类类型也支持直接初始化
对于非类类型,直接初始化和复制初始化无区别
对于类类型,直接初始化可使用implicit构造函数,也可使用explicit构造函数,复制初始化可使用implicit构造函数,不可使用explicit构造函数,且复制初始化只允许传递一个参数
class CAnimal
{
public:
CAnimal() : mGroup(0)
{
cout << "CAnimal()" << endl;
}

CAnimal(int group) : mGroup(group)
{
cout << "CAnimal(" << group << ")" << endl;
}

CAnimal(const CAnimal &other) : mGroup(other.mGroup)
{
cout << "CAnimal(const CAnimal &other)" << endl;
}

private:
int mGroup;
};

void init()
{
int i1 = 5;
int i2(8);

CAnimal animal1(5);
CAnimal animal2 = 8;
}

output:
CAnimal(5)
CAnimal(8)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐