《C++ Primer》第五版,中文版。88 页。
提供两个初始值是什么样的?
when we use the copy initialization form (i.e., when we use =) (§ 3.2.1, p. 84), we can supply only a single initializer;
你不可能用两个值来初始化对象吧
这句话的意思是当你是用拷贝初始化的时候,只能单个初始化
A aa("1");
A arr[3] = {"2", "3". "4"}; //多个初始化
A bb = aa; //调用拷贝构造,只能单个初始化
定义一个对象的时候,用另外一个同类型对象去初始化它,该类的拷贝构造函数被调用~
可以参考书中提到的前文 § 3.2.1, p. 84,这里对应的提供两个初始值的情况应该是:
vector<int> v1(2, 3); // 直接初始化,v1 包含2 个 3
而 vector<int> v2 = {1, 2, 3};
应该是列表初始化,也属于拷贝初始化。