More Effective C++ 学习笔记
来源:互联网 发布:mac safari开启无痕 编辑:程序博客网 时间:2024/04/30 02:46
从本篇开始,详细学习More Effective C++,做笔记,菜鸟中的菜鸟,如有大神光临,还请不吝指教!
条款1:指针与引用
使用指针的情况:
1.有时可能不指向任何对象,即指针为空;反之,引用在定义时必须初始化,而且不能空。
2.在不同的时候可能会指向不同的对象,即指针可以被不断重新赋值,视为一般的变量;引用初始化后即指向该初始值,如果重新赋值,则指向的对象的值会被改变。
引用:
1.使用一个对象且不会改变这个指向的时候;
2.重载操作符,并防止不必要的语义误解;
C++中引用必须要初始化,所以导致遇到引用的时候不会做类型检查,因此其效率要比指针高。
之前读过几篇blog,探究为什么引用要初始化呢?原因是,在C++中,引用其实是一个常量指针。即
int a = 2;int &j = a;//int const* j = &a;
因为是常量,所以必须要初始化了。也就解释了为什么引用一经指向一个对象后,就不能够再更改其指向了,因为它是一个const 的指针。
而且引用也是会被分配内存的(伪码如下),并不能简单地理解为引用对象的别名,这个只是在使用的时候给人的一种感觉,而不能揭示引用的真正的原理。
class A{int& a;int& b;}void main(){cout<<sizeof(class A);}
0 0
- 《More Effective C++》笔记
- 《more effective c++》笔记4
- 《More Effective C++》学习笔记之一引用与指针
- More Effective C++ 学习笔记
- <<More Effective C++>>笔记C++技巧1
- <More Effective C++>笔记--基础
- <More Effective C++>笔记--异常
- <More Effective C++>笔记--技巧
- 《Effective C++》与《More Effective C++》笔记总结
- more effective c++学习笔记 ---- 条款31
- More Effective C++ 学习笔记(1)
- More Effective C++学习笔记(2)
- More Effective C++ 学习笔记(3)
- 《Effective C++》学习笔记
- 《Effective C++》学习笔记
- 《Effective C++》学习笔记
- 《Effective C++》学习笔记
- 《more effective c++》读书笔记
- Java的内存机制
- Android学习进阶01——Activity
- 第一个OC程序
- 模式识别的比较好的总结。
- JDBC数据源(DataSource)的简单实现
- More Effective C++ 学习笔记
- Fastest Way to Update Rows in a Large Table in SQL Server
- ACM(002)括号配对问题(3)
- 从HelloWorld中我们能学到什么
- 可变java对象存入hashSet引发的问题
- 依赖倒置原则(DIP)--深度剖析--面向对象设计(OOD)
- 一些开源产品,没事可以读读源代码
- 替换原则(LSP)--深度剖析--面向对象设计(OOD)
- 天龙八部