dt3tc 发表于 2019-6-1 11:29:19

请问 下面 2种 给 string 对象赋值的 方法的 区别

//将 "Hi.\n" 赋值 给 a
string a="Hi.\n";

//将 "Hi.\n" 赋值 给 a
string a("Hi.\n");

我知道 写法 不同,还有别的吗?
谢谢

Croper 发表于 2019-6-1 11:29:20

如果是stdlib里的string,那么没有区别
string a("Hi.\n")这种用法算是显示调用构造函数,如果构造函数里有explicit关键字,那么只能用string a("Hi.\n")而不能用string a="Hi.\n";

我就是个弟弟 发表于 2019-6-1 18:26:50

没有区别{:10_327:}

IChoose 发表于 2019-6-1 20:06:14

string a("Hi.\n")这种用法调用构造函数,而string a="Hi.\n";是拷贝初始化,只能说初始化的方式不同吧
页: [1]
查看完整版本: 请问 下面 2种 给 string 对象赋值的 方法的 区别