拷贝初始化和直接初始化定义
在初始化时,使用=就是拷贝初始化,不使用=就是直接初始化。
拷贝初始化调用拷贝构造函数,而直接初始化调用构造函数。就怕编译器优化,就不太遵循规则了。
实例
string s5 = "huya"; //拷贝初始化
string s6("huya"); //直接初始化
string s7(10,'c'); //直接初始化
混合用
string s8 = string(10, 'c'); //先调用构造,再调用拷贝构造
等效于
string temp(10, 'c');
string s8 = temp;