C++ 语言有几种不同的初始化方式,如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化(copy initialization),编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化(direct initialization)。

当初始值只有一个时,使用直接初始化或拷贝初始化都行。如果初始化要用到的值有多个,一般来说只能使用直接初始化的方式:

string s1 = "hiya";   // 拷贝初始化
string s2("hiya");  // 直接初始化
string s3(10, 'c');  // 直接初始化,s3 的内容是 cccccccccc
《C++ Primer》Page: 76
Last modification:April 11, 2021
如果觉得我的文章对你有用,请随意赞赏