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。
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。
相关文章推荐
- C++ 之 Direct and Copy Forms of Initialization
- C++:Initialization, assignment & copying有什么不同
- C++引用报错:invalid initialization of non-const reference of type ‘std::string&’ from an rvalue of type
- (原創) C++可以使用Direct-Initialization的方式在Built-in Type (C/C++)
- C++ Object Model:Default Memberwise Initialization/bitwise copy semantics及深拷贝/浅拷贝
- Constructor and destructor -- Initialization & Cleanup in C++
- C++之invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’
- direct initialization & copy initialization
- 面向对象程序设计-C++ Default constructor & Copy constructor& Destructor & Operator Overloading【第九次上课笔记】
- USB口异常与C++&Java
- 为什么要同时使用和&符号(c++) 转载
- C++试题&简要答案:
- [收藏]C++ Tips(12)--||和&&的语句执行顺序
- GNU/Linux Debian + MySQL 5.0+ Java + "C++" + Eclipse 的N种可能
- Java vs C++ "Shootout" Revisited
- 收藏一下, c++&&Python
- Chapter 4:Initialization & Cleanup
- 开始Series 60 C++程序设计(一&二)
- Eclipse & C/C++
- 关于C++&Java中命令行编译的问题