C语言中容易被忽略的细节(第三篇)(二)

2014-11-23 19:25:40 · 作者: · 浏览: 56

9、不要用字面常量来初始化引用

const int &a = 0;

以上语义并非是把引用初始化为NULL,而是创建一个临时的int对象并用0来初始化它,然后再用它来初始化引用a,而该临时对象将一直保留到a销毁的时候才会销毁。


10、引用的创建和销毁并不会调用类的构造函数和析构函数。在二进制层面,引用一般是通过指针来实现的,只不过编译器帮我们完成了转换。