關於const和函式

2021-04-07 04:22:46 字數 1066 閱讀 3050

關於

const

和函式void fun() const{};

、const void fun(){};

和void const fun(){};

的區別?

答:const void fun(){};

和void const fun(){};

兩個相同。

如果採用

"按址傳遞方式

"的函式返回值加

const

修飾,那麼函式返回值(即位址)的內容不能被修改,該返回值只能被賦給加

const

修飾的同型別指標。

如果採用

"按值傳遞方式

"的函式返回值加

const

修飾,由於函式會把返回值複製到外部臨時的儲存單元中,加

const

修飾沒有任何價值。

所以不要盡量不要把

int fun2();

寫成const int fun2();

因為沒意義。

例:#include

using namespace std;

int num=10;//

全域性變數

const int *fun1()

const int fun2()

int main()

void fun() const{};

類的成員函式後面加

const

,表明這個函式不可以對這個類物件的資料成員(準確地說是非

static

資料成員)作任何改變。

例:#include

using namespace std;

class r

int sum1(int a)const

int sum2(int a)const

int sum3(int a)//

沒有const

private:

int num1;

static int num2;

}t;

int r::num2=0;

int main()

關於 const 成員函式

成員函式如果是const意味著什麼?有兩個流行概念 物理常量性和邏輯常量性。c 對常量性的定義採用的是物理常量性概念,即const 成員函式不可以更改物件內任何non static成員變數。例如 1 class ctextblock2 1213 std size t ctextblock lengt...

關於函式返回引用和const物件

class node const node fun const node obj return obj 則可以這樣使用該函式 node obj node res fun obj res的位址與obj的不同,其中任乙個變數值的改變不會影響另乙個變數 或const node res fun obj 必須...

const物件和const函式

當乙個類的函式的參數列不同時,能過載函式,當函式的const性不同時,也能過載函式。如下所示 include a.h 定義了ca類 class cbigclass const ca getvalue const ca getvalue private ca m value 客戶端 如下 ca ca ...