您的位置:首页 > 编程语言 > C语言/C++

C++:copy initialization & direct initialization

2014-08-12 20:50 501 查看
参考材料: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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: