目錄
一.Const成員函數(shù)? ? ??
1.定義:
2.格式:
3.代碼示例:
.h文件:
definition.cpp文件?
特性:
例:
那么const對象既可以調用非const型成員函數(shù)嗎?
問題3.const成員函數(shù)內可以調用其它的非const成員函數(shù)嗎?
問題4. 非const成員函數(shù)內可以調用其它的const成員函數(shù)嗎?
總結:
將const修飾的“成員函數(shù)”稱之為const成員函數(shù),const修飾類成員函數(shù),表明在該成員函數(shù)中不能對類的任何成員進行修改。
? const修飾成員函數(shù)的時候,const需要放在成員函數(shù)的后面,不能放在一開始,,若是放在一開始的話,那么const修飾的是函數(shù)的返回值,而非是修飾成員函數(shù)了。
2.格式:3.代碼示例:.h文件:返回值類型 函數(shù)名稱 ( ) const {
? //函數(shù)體.....
????????????????? }
class Date {
public:
//構造函數(shù)不可以使用const修飾,構造函數(shù)若加了const就不能初始化值了
Date(int year = 1199, int month = 12, int day = 15);
void Print() const;
void Reset1()const;
void Reset2();
void Reset3()const;
private:
int _year;
int _month;
mutable int _day;
};
definition.cpp文件?Date::Date(int year, int month, int day) {
_year = year;
_month = month;
_day = day;
}
void Date::Print() const{
cout<< _year<< "-"<< _month<< "-"<< _day<< endl;
}
void Date:: Reset1()const {
_day = 1;
_month = 2;
_year = 1970;
}
void Date::Reset2() {
_day = 1;
_month = 2;
_year = 1970;
}
void Date:: Reset3()const {
this->_day++;
}
例:const修飾的成員函數(shù):實際上修飾的是this指針指向空間的內容不可被修改
有了const修飾的成員函數(shù),其this指針類型:const Date* const? (左定值,右定向)而普通的成員函數(shù):可以修改成員變量 ,其this指針類型:Date* const
int main() {
Date d1(2022, 9, 9);
d1.Print();
d1.Reset2();
d1.Print();
return 0;
}
那么const對象既可以調用非const型成員函數(shù)嗎?解析:d1是Date類型,可讀可寫,Reset函數(shù)可讀可寫,而Print函數(shù)僅可讀,表明非const對象既可以調用const型成員函數(shù),也可以調用非const型成員函數(shù)。?這是權限的平移和縮小。
同樣的,權限小的是不能調用權限大的?。。?
?不可以,若你把一個函數(shù)聲明為const類型函數(shù),那么就說明這個函數(shù)是只讀的,不可修改,
而非const成員函數(shù)是可讀可寫的。
可以,外層函數(shù)類型Date* const:是可讀可寫的,而內層函數(shù)類型是const Date* const:只讀
外層可以修改也可以不修改,到底是否要修改,視情況而定。
到底要不要使用const去修飾成員函數(shù),就看你函數(shù)中的變量需不需被修改,如果不希望被修改,則加上即可。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享題目:C++基礎——const成員函數(shù)-創(chuàng)新互聯(lián)
當前鏈接:http://sd-ha.com/article8/djpiip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、建站公司、面包屑導航、網(wǎng)站設計、Google、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容