指针与引用的选择
1、C++要求引用必须有初值,总是指向它最初获得的那个对象;
指针可以重新赋值,指向另一个对象;
string s1("nancy");
string s2("clancy");
string& rs=s1;
string *ps =&s1;
rs=s2;
ps=&s2;
这段代码,rs仍然指向的是s1,但是s1的值现在变成了“clancy”;然而ps现在指向s2,s1没有变化。
2、当需要考虑不指向任何对象的可能性时,或者考虑在不同时间指向不同的对象时,应该选择指针;但是当你确定总是指向某个对象,而且一旦代表该对象不能够改变,那么就选择引用。
结论:当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或者当你实现一个操作符而其语法需求无法由指针达成,你就应该选择引用。其他任何时候,采用指针。