C/C++ const 的3 種用法與範例

文章推薦指數: 80 %
投票人數:10人

以下C/C++ const 的用法介紹分別為這幾種, C/C++ const 加上變數前的用法C++ ... 這邊要另外舉個字串指標的例子, const char *str 雖然是不能修改 ... 2022-01-10 C/C++教學 本篇ShengYu介紹C/C++const的3種用法與範例,包含C++const平常的一般基本用法以及C++const在成員函式中的用法。

以下C/C++const的用法介紹分別為這幾種, C/C++const加上變數前的用法 C++const加在成員函式前面的用法 C++const加在成員函式後面的用法 那我們開始吧! C/C++const加上變數前的用法這邊介紹C/C++const加上變數前的用法,C/C++const加上變數前表示不能修改該變數,該變數為read-only, 如下範例所示,宣告constintn=5;之後如果嘗試對n進行修改的話會得到error:assignmentofread-onlyvariable‘n’編譯錯誤訊息,12345678#includeusingnamespacestd;intmain(){constintn=5;//n=10;//compileerrorreturn0;} 這邊要另外舉個字串指標的例子,constchar*str雖然是不能修改其str指標指向的內容,但str指標本身卻是可以修改的,所以這部份在使用上需要特別注意,詳細說明如下, 如下例所示,宣告一個constchar*name2="Amy";,name2表示指標指向的內容不可修改,如果嘗試對name2指標指向的內容進行修改的話會得到error:assignmentofread-onlylocation‘*name2’編譯錯誤,例如下例中的name2[0]='B';就是對name2指向的內容進行修改, 但是name2指標本身是可以修改的,也就是可以修改name2指標指向別的地方,如下例中的name2=name;將name2指向name,這樣name2印出來的內容就會是Tom而不是Amy, 如果要指標本身不可修改的話,可以像下中的name3前加上const變成constchar*constname3,這樣就是表示指標本身不可修改且指向的內容也不可修改,之後如果嘗試對name3的指標進行修改的話會得到error:assignmentofread-onlyvariable‘name3’編譯錯誤訊息,123456789101112131415161718#include#includeusingnamespacestd;intmain(){charname[5]="Tom";cout<#includeclassStudent{public:Student(){}conststd::string&getName(){returnname;}voidsetName(std::stringname){this->name=name;}private:std::stringname="unknown";};intmain(){Students;conststd::string&studentName=s.getName();std::cout<#includeintmain(){std::queueq;q.push(1);q.push(2);q.push(3);constint&n=q.front();//n=5;compileerrorstd::cout<usingnamespacestd;classObject{public:Object(){}intgetCounter()const{//counter++;//compileerror,const加在成員函式後面表示不行在該函式裡修改成員變數//number=10;//compileerror,const加在成員函式後面表示不行在該函式裡修改成員變數intnumber2;number2=10;//區域變數可以進行修改returncounter;}voidaddCount(){counter++;}private:intcounter=0;intnumber=0;};intmain(){Objecto;intcounter=o.getCounter();std::cout<



請為這篇文章評分?