首页 > 代码库 > 复制初始化和直接初始化

复制初始化和直接初始化

string str("12345");

string str = "12345";

在写代码时忽然想到这个两个有啥区别呢,其实这个还是c++基础薄弱的原因

于是我又翻开了primer

c++支持两种初始化方式:复制初始化和直接初始化

int ival(1024);//直接初始化

int ival = 1024;//复制初始化

对于类类型

string str("12345");//调用相应的构造函数,直接初始化

string str = "12345";//先用"12345"生成一个临时对象,然后调用复制构造函数来初始化str

下面这个

string str1("12345"), str2;

str2 = str1;//调用的赋值构造函数,重载了=操作符

PS:复制构造函数就是拷贝构造函数,翻译不同