Effective 5
来源:互联网 发布:吉他弹唱 知乎 编辑:程序博客网 时间:2024/05/15 01:06
1.一个空类并不是不占内存,因为编译器能够区分不同对象,所以也占空间,一般占一个字节。
2.赋值运算符要返回自身*this,是因为考虑到可以出现连等的情况,比如obj1 = obj2 = obj3,另外,这里都使用了自身类的引用,即A &,这里的引用是必须要加的,这是因为:
(1) 引用修饰形参时,可以避免实参对形参的拷贝,一方面可以节省空间和时间资源,更为重要的是若实参对形参拷贝了,又会调用一次拷贝构造函数,这样拷贝构造函数就会一遍又一遍的被调用,造成无穷递归。
(2) 引用修饰返回值时,可以使返回的对象原地修改。比如(a=b) ++,这样返回的a对象还可以进行自增操作,如果不加引用,则因为生成的是原对象的拷贝,所以这样的自增操作并不使a本体自增。
3.EmptyClass a(b); // 调用的是拷贝构造函数
EmptyClass a = b; // 调用的是拷贝构造函数
EmptyClass a;
a = b; // 调用的是赋值运算符
这里注意一下第二个和第三个例子,同样是等号,但却调用了不同的成员函数,重要的区别就要看是不是在这句话中新产生一个对象,第二个例子新产生一个对象,所以调用的是拷贝构造,第三个例子a在“=”前已经诞生了,所以调用的是赋值运算符。
阅读全文
0 0
- Effective 5
- Effective STL 读书笔记 5
- Effective C++回顾(5)
- Effective C++之5
- Effective C++(5-12)
- Effective C++ 5
- Effective C++读书笔记5
- Effective C++笔记 5
- <<Effective C++>>笔记5
- Effective C++ 读书笔记(5)
- effective C++: 5实现
- Effective C++ --5 实现
- Effective C++读书笔记(5)
- Effective C++读书笔记(5)
- Effective C++笔记(5)
- (5)Effective OC
- Effective 5~11
- 《effective C++》条款5
- 一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr
- QT实时视频播放界面设计
- 云和恩墨数据一体机助力青海移动云化起航
- zookeeper监听器原理
- SSH Client连接Ubuntu Server失败解法
- Effective 5
- EffectivePython-函数:闭包、生成器、迭代器协议
- 利用String类或StringBuffer类的方法,对输入的Email地址进行有效性验证。提示: 1)Email地址中应包含“@”和“.”符号; 2)“@”符号应该在“.”符号之前; 3
- HQL 检索方式
- 夜神模拟器 链接 studio
- kl25开发板基于Kinetis Design Studio 3.0.0 IDE软件下的七色灯
- Java split 根据指定字符串分隔成list数组的用法
- 计算机视觉与深度学习(4)
- JVM调优实战讨论:YGC调优