C 學習之共享資料的保護

2021-09-12 05:38:17 字數 1618 閱讀 2355

對於既需要共享、又需要防止改變的資料應該宣告為常型別(用const進行修飾)。

對於不改變物件狀態的成員函式應該宣告為常函式

1、常物件:必須進行初始化,不能被更新。

const 類名 物件名

2、常成員:用const進行修飾的類成員(常資料成員和常函式成員)

3、常引用:被引用的物件不能被更新。

const 型別說明符 & 引用名

4、常陣列:陣列元素不能被更新(後面學習)

型別說明符 const 陣列名[大小]

5、常指標:指向常量的指標(後面會學習)

用const修飾的物件,例如:

class a

...private:

int x,y;

};a const a(3,4); //a是常物件,不能被更新

用const修飾的物件成員。

常成員函式:使用const關鍵字說明的函式;常成員函式不更新物件的資料成員;常成員函式的說明格式如下:

型別說明符 函式名 (參數列) const;

這裡,const是函式型別的乙個組成部分,因此在實現部分也要帶const關鍵字。

const關鍵字可以被用於參與對過載函式的區分。

通過常物件只能呼叫它的常成員函式。

常資料成員:使用const說明的資料成員,例如:

#includeusing namespace std;

class r

void print();

void print() const;

private:

int r1, r2;};

void r::print()

void r::print() const

int main()

常資料成員舉例:

#include using namespace std;

class a ;

const int a::b=10;

a::a(int i) : a(i)

void a::print()

int getx()

int gety()

friend float dist(const point &p1,const point &p2);

private: //私有資料成員

int x, y;

};float dist(const point &p1, const point &p2)

int main()

單選題:

下列關於常成員的說法不正確的是哪乙個?

1、常資料成員必須進行初始化,並且不能被更新。

2、常資料成員可以在定義時直接初始化(c++11)

3、常成員函式不可以被非常數物件呼叫。

4、常資料成員通過建構函式的成員初始列表進行初始化。

正確答案:3.

C 學習之資料的共享與保護

作用域是乙個識別符號在程式正文中有效的區域。作用域分類 1 函式原型作用域 2 區域性作用域 塊作用域 3 類作用域。4 檔案作用域。5 命名空間作用域 後面會學習 函式原型中的引數,其作用域始於 結束於 例如 double area double radius 函式的形參 在塊中宣告的識別符號。其...

共享資料的保護

一 常物件 1 常物件 它的資料成員值在物件的整個生存期間內不能被改變 也就 是說,常物件必須初始化,而且不能被更新 宣告常物件的語法形式 const 型別說明符 物件名 例如 class a private int x int y const a a 1,2 a是常物件,不能被更新 二 用cons...

c 共享資料的保護知識要點

include using namespace std class r 建構函式及其初始化 void print void print const private int r1,r2 void r print void r print const intmain include using name...