class student{
public: string name;
}
在c++代碼中,指向對象的常指針,指向常對象的指針和常引用都是出現頻率比較高。剛學習C++不久,通過閱讀網上資料和教材,得出下面的一些總結:
1:指向對象的常指針,表示指針永遠都是指向同一個對象,不能改變成指向別的對象
a:基本形式:student * const p = &stu;
如果我們使用如 p = &stu1 將是錯誤的,因爲指向對象的常指針一旦被初始化,就不能再修改成指向別的對象了
2:指向常對象的指針,表示不能通過指針改變對象的值
a:基本形式:const student * p = &stu;
不能在後面的語句中使用類似 (*p).name = "Monkey" 的語句企圖改變stu的值
b:在函數調用中,如果實參是指向常對象的指針,那麼形參也必須是指向常對象的指針,這樣就不能在調用函數的過程中該變實參的值;如果形參是指向常對象的指針,則實參可以是指向常對象的指針,也可以不是。
c:如果對象已經被聲明爲常對象,則指向這個對象的指針也必須是指向常對象的指針,如
const student stu; //常對象
const student * p = &stu; //指向常對象的指針
3:常引用
a:如果常對象的引用也必須是常引用,如
const int &a = 2; //2是常量,所有前面的const是不能省略的
const student stu;
const student &s = stu; //常對象的引用頁必須是常引用
b:時常被使用在實參和形參的傳遞中,如果我們不希望在函數調用的過程中修改實參的值,可以使用常引用作爲形參