参考材料:C++ primer 5th edition &13.1.1
direct initialization copy initialization
string dots(10, '.'); string s2 = dots;
string s(dots); string null_book = "9-999";
string nines = string(100, '9');
1——》direct ini和copy ini 分别做了哪些工作
direct:请求compiler基于ordinary function matching的准则,找到最合适所提供参数的一个constructor
copy:请求compiler copy右边的operand,给zuobiancreated的operand
2——》当向compiler请求copy initialization时,在不同情况下会有两种选择:copy constructor 或 move constructor
3——》什么时候发生copy initialization?
——》define variables with an "=";
——》Pass an object as an argument to a parameter of nonreference type
——》Return an object from a function that has a nonreference return type
4——》为什么copy constructor的parameter一定是reference?
如果copy constructor的parameter是nonreference,则要call copy constructor传递参数时,需要又call copy constructor。。。。如此往复,never succeed。