More Effective C++ : Item 1: 指针和引用的区别
来源:互联网 发布:java sql学生管理系统 编辑:程序博客网 时间:2024/06/14 09:04
区别1:引用必须代表某个对象,即没有null reference;指针可以指向NULL,即有null pointer。
// 禁止以下行为char *pc = NULL;char &rc = *pc;// 让引用代表NULL指针的解引值。
string str("Wuhan");string &rs1;// 错误string &rs2 = str;// OK
效率问题:
void printDouble(const double &rd){cout<<rd<<endl;}void printDouble(const double *pd){if (pd != NULL){cout<<*pd<<endl;}}
区别2:指针可以被重新赋值,指向另外一个对象;引用却总是指向最初指向的那个对象。
#include <iostream>#include <string>using namespace std;int main(){string s1("Beijing");string s2("Wuhan");string &rs = s1;string *ps = &s1;rs = s2;// rs仍然代表s1,但是s1的值变成了s2的内容。ps = &s2;cout<<rs<<endl;// Wuhancout<<s1<<endl;// Wuhansystem("pause");return 0;}
特殊情况:指针无法解决,必须使用引用解决。
/*operator[]的返回值类型问题*/vector<int> v(10);// operator[]必须返回某种“能被当做assignment赋值对象”的东西v[5] = 10;// 如果operator[]返回pointer,上面的句子必须写成*v[5] = 10;// 总结operator[]应该返回一个reference
- More Effective C++ : Item 1: 指针和引用的区别
- 《more effective c++》Item M1:指针与引用的区别
- 《More Effective C++》 Item M1:指针与引用的区别
- C++中指针和引用的区别(1)---《More Effective C++》
- 指针与引用的区别(More Effective C++)
- More Effective C++:指针与引用的区别
- [More Effective C++]条款一:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- More Effective C++:指针与引用的区别
- 最短路径Floyd算法具体演示
- 开源中国阅读小记(2)
- 会计 制造费用转生产成本
- nyoj 92 图像有用区域
- Redis adlist
- More Effective C++ : Item 1: 指针和引用的区别
- 使用并查集实现Kruscal算法
- 菜鸟学排序----插入排序
- Android布局layout如何适应不同的分辨率和不同大小的屏幕
- hdu 3360National Treasures
- php扩展安装mbstring
- vim 将数据复制粘贴到其他文件
- Android将第三方jar打包进apk
- 将django部署到Apache服务器