日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ const成员变量和成员函数

發(fā)布時間:2025/3/12 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ const成员变量和成员函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

const成員變量

const 成員變量的用法和普通 const 變量的用法相似,只需要在聲明時加上 const 關鍵字。初始化 const 成員變量只有一種方法,就是通過構造函數(shù)的初始化列表。

const成員函數(shù)(常成員函數(shù))

const 成員函數(shù)可以使用類中的所有成員變量,但是不能修改它們的值,這種措施主要還是為了保護數(shù)據(jù)而設置的。const 成員函數(shù)也稱為常成員函數(shù)。

我們通常將 get 函數(shù)設置為常成員函數(shù)。讀取成員變量的函數(shù)的名字通常以get開頭,后跟成員變量的名字,所以通常將它們稱為 get 函數(shù)。

常成員函數(shù)需要在聲明和定義的時候在函數(shù)頭部的結尾加上 const 關鍵字,示例如下:

class Student{ public:Student(char *name, int age, float score);void show();//聲明常成員函數(shù)char *getname() const;int getage() const;float getscore() const; private:char *m_name;int m_age;float m_score; };Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){ } void Student::show(){cout<<m_name<<"的年齡是"<<m_age<<",成績是"<<m_score<<endl; } //定義常成員函數(shù) char * Student::getname() const{return m_name; } int Student::getage() const{return m_age; } float Student::getscore() const{return m_score; }

getname()、getage()、getscore() 三個函數(shù)的功能都很簡單,僅僅是為了獲取成員變量的值,沒有任何修改成員變量的企圖,所以我們加了 const 限制,這是一種保險的做法,同時也使得語義更加明顯。

注意:必須在成員函數(shù)的聲明和定義處同時加上 const 關鍵字。char *getname() const和char *getname()是兩個不同的函數(shù)原型,如果只在一個地方加 const 會導致聲明和定義處的函數(shù)原型沖突。

區(qū)分 const 的位置:

函數(shù)開頭的 const 用來修飾函數(shù)的返回值,表示返回值是 const 類型,也就是不能被修改,例如const char * getname()。函數(shù)頭部的結尾加上 const 表示常成員函數(shù),這種函數(shù)只能讀取成員變量的值,而不能修改成員變量的值,例如char * getname() const。

總結

以上是生活随笔為你收集整理的C++ const成员变量和成员函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。