C++类与const关键字
?一句話概括:const成員變量參考C語言;const成員函數(shù)中,const寫在函數(shù)后面,如:func()const,const成員函數(shù)只能使用const成員變量,但不能修改const成員變量;const對(duì)象,該對(duì)象就只能調(diào)用類中的常成員函數(shù)了。如果要修改常對(duì)象中的成員變量,那么應(yīng)該將該對(duì)象設(shè)置為mutable(可變的)。
?
const成員變量
const成員變量其用法和普通的const變量用法相似,在定義時(shí)只需在前面加上const關(guān)鍵字即可。
?
const成員函數(shù)
const成員函數(shù)可以使用類中的所有成員變量,但是不能修改變量的值,這種措施主要還是為了保護(hù)數(shù)據(jù)而設(shè)置的。
常成員函數(shù)就是在聲明和定義的時(shí)候在函數(shù)頭部的結(jié)尾加上const關(guān)鍵字。
const對(duì)象
const對(duì)象定義的基本語法如下:
? ? const 類名 對(duì)象名(實(shí)參名);
? ? 類名 const 對(duì)象名(實(shí)參名);
這兩種定義方式都是可以的,我們一旦將對(duì)象定義為常對(duì)象之后,該對(duì)象就只能調(diào)用類中的常成員函數(shù)了。
關(guān)鍵字mutable
有些時(shí)候我們在程序設(shè)計(jì)過程中要求修改常對(duì)象中的某個(gè)成員變量,這個(gè)時(shí)候如果是普通的成員變量是不能被修改的。為了滿足這一需求,C++提供了mutable關(guān)鍵字。
mutable int var;通過這樣的聲明將變量var聲明為可變的成員變量,此時(shí)如果要修改常對(duì)象的該變量時(shí),只需要通過常對(duì)象調(diào)用const成員函數(shù)修改該變量即可。
對(duì)象的const引用
#include<iostream> using namespace std;class book { public:book(){}book(book &b);book(char* a, double p = 5.0);void setprice(double a);double getprice()const;void settitle(char* a);char * gettitle()const; private:double price;char * title; };book::book(book &b) {price = b.price;title = b.title; }book::book(char* a, double p) {title = a;price = p; }void book::setprice(double a) {price = a; }double book::getprice()const {return price; }void book::settitle(char* a) {title = a; }char * book::gettitle()const {return title; }void display(const book &b) {b.setprice(59.9); //compile errorcout<<"The price of "<<b.gettitle()<<" is $"<<b.getprice()<<endl; //ok }int main() {book Alice("Alice in Wonderland",29.9);display(Alice);book Harry("Harry potter", 49.9);display(Harry);return 0; }?
總結(jié)
以上是生活随笔為你收集整理的C++类与const关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++类与new和delete操作符
- 下一篇: C++类与static关键字