copy构造隐藏的陷阱
来源:互联网 发布:轮胎数据怎么看 编辑:程序博客网 时间:2024/05/01 10:48
copy构造
当你看到赋值符号时要小心,因为"="语法也可用来调用copy构造函数。
例如: Widget w3 = w2; //调用copy构造函数!!
copy构造函数是一个尤其重要的函数,因为它定义一个对象如何passed by value(以值传递)。
举个例子,考虑一下代码:
bool hasAcceptableQuality(Widget w);
...
Widget aWidget;
if ( hasAcceptableQuality(aWidget) )
...
分解hasAcceptableQuality(aWidget)这个语句如下:
Widget w = aWidget;
hasAcceptableQuality(w)
参数w是以by value 方式传递给hasAcceptableQuality。在上述调用中Widget被复制到w体内,这个复制动作由Widget的copy构造函数完成。
总结:函数中的Pass-by-value意味”调用copy构造函数“。
以by value 传递用户自定义类型通常是个坏主意,Pass-by-reference-to-const(引用传递)往往是比较好的选择。
转载请注明,文章来自:http://blog.csdn.net/windows_nt
- copy构造隐藏的陷阱
- C++类的拷贝构造(Copy constructor)函数隐藏陷阱
- AsyncTask隐藏的陷阱
- AsyncTask隐藏的陷阱
- AsyncTask隐藏的陷阱
- 两道面试题隐藏的陷阱
- 拷贝构造函数的陷阱
- 构造函数的小陷阱
- 拷贝构造函数的陷阱
- 拷贝构造函数的陷阱
- Copy构造函数的理解
- 面向对象的陷阱——构造器的陷阱
- C中字符串隐藏的陷阱
- Java构造时成员初始化的陷阱
- Java构造时成员初始化的陷阱
- Java构造时成员初始化的陷阱
- Java构造时成员初始化的陷阱
- Java构造时成员初始化的陷阱
- ubuntu11.04 samba服务器安装
- CentOS 下Apache+PHP+MySQL 服务器配置
- Eclipse查看jar中的class文件注释出现乱码
- VIM使用
- Apache2 httpd.conf 中文版
- copy构造隐藏的陷阱
- 一些简单的sq例子
- 告别LVS:使用keepalived+nginx实现负载均衡代理多个https
- Xcode4自动生成注释和开发文档
- 重做大赛计分数组版
- (总结)Nginx配置文件nginx.conf中文详解
- 神奇的图像处理算法
- repeater实现样式设置,并添加删除按钮,参考课上老师做的案例。数据表添加字段status,使用repeater实现禁用与启用。repeater添加编辑按钮,和Edit.aspx页面。
- sscanf函数的用法 收藏