拷贝初始化与直接初始化
拷贝初始化与直接初始化

Directory


Reference

初始化与赋值

初始化与赋值是完全不同的两个操作。

初始化的含义是在创建变量时赋予初始值,而赋值是指把对象的当前值擦除,以新值替代。

拷贝初始化与直接初始化

拷贝初始化 copy initialization

直接初始化 direct initialization

string s5 = "hiya"; //拷贝初始化
string s6("hiya"); // 直接初始化
string s7(10,'c'); //直接初始化

如上,如果使用等号=初始化变量,实际上执行的是拷贝初始化,编译器把右侧的初始值拷贝到新创建的对象中。当需要对多个值使用拷贝初始化时,需要显式的创建一个(临时)对象用于拷贝。

string tmp(10,'c');
string s8 = tmp;

上一篇   Blog 历史变化

下一篇   顶层const与底层const