条款1 references & pointers

引用与指针不同:
1.没有空引用,一个引用必须总代表某个对象,C++因此要求引用必须有初值,pointers没有这样的限制
1 string& rs;   //error
2 string& re = s;  //ok
3 string *ps;   //ok
4  
5 char *pc = 0;//将pc设定为NULL
6 char& rc = *pc;  //error
2.pointers 可以被重新赋值,指向另一个对象;references总是代表它最初获得的那个对象
1 string s1("Nancy");
2 string s2("Bob");
3  
4 string& rs = s1;     //rs代表s1
5 string *ps = &s1;    //ps指向s1
6 rs = s2;             //等价于 s1=s2,将s2赋值给s1  
7                      //因为rs仍代表s1,但是s1的值现在变成了Nancy
8 ps = &s2;            //ps现在指向了s2,s1没有变化
3.实现某种操作符时,也需要用到references

猜你喜欢

转载自www.cnblogs.com/dzy521/p/9144721.html