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:复制构造函数就是拷贝构造函数,翻译不同