c++中"string c=string()"这条语句为什么是对的
c++中"string c=string()"这条语句为什么是对的
string c = string();
这是直接初始化+拷贝初始化
对于用多个值进行初始化的情况,非要用拷贝初始化的方式来处理页也不是不可以,不过需要显式地创建一个(临时)对象用于拷贝:
string s8 = string(10,c)
s8的初始值是string(10,'c'),它实际上是用数字10和字符c两个参数创建出来的一个string对象,然后这个string对象又拷贝给了s8。这条语句本质上等价于下面的两条语句:
string temp(10,'c'); string s8 = temp;
《c++ primer中文版》P76