C 函式過載之const特徵標

2021-09-30 10:55:24 字數 493 閱讀 1458

c++中,普通函式過載需要滿足一定的條件,如:

1、形參的個數不同

2、形參的型別不同

3、形參的型別和個數都不同

總之,普通函式過載取決於形參的個數和型別,與函式的返回值型別無關。

但是,在類中,函式將區分常量函式和非常量函式的特徵標。也就是說,常量函式和非常量函式如果形參一樣,函式名一樣也是可以實現函式過載的。

如:

class ctest

;

類中的兩個成員函式test是過載函式。編譯ok。

在普通函式中則不能通過const當做函式的特徵。如下面兩個普通函式在一起編譯時重定義的。

const int test(int &);	

int test(int &); //重定義,編譯報錯

總之一句話:在類中,函式過載除了形參型別和個數不同可以實現外,const常量函式和非常量函式也可以實現函式過載。

函式過載之const

我們知道,如果函式名相同,在相同的作用域內,其引數型別 引數個數,引數順序不同等能構成函式過載。有趣的是如果同時在類中,對於函式名相同的const函式和非const函式能夠構成過載,同時它們被呼叫的時機為 如果定義的物件是常物件,則呼叫的是const成員函式,如果定義的物件是非常物件,則呼叫過載的非...

C 中const用於函式過載

首先先回憶一下常成員函式 宣告 型別標誌符 函式名 參數列 const 說明 1 const是函式型別的一部分,在實現部分也要帶該關鍵字。2 const關鍵字可以用於對過載函式的區分。3 常成員函式不能更新類的成員變數,也不能呼叫該類中沒有用const修飾的成員函式,只能呼叫常成員函式。4 非常量物...

在c 中用const函式過載

今天寫作業是遇到需要呼叫const物件中的函式,因為是const,所以成員函式無法訪問,需要進行過載 nodeiteratorbegin 如上所示的函式,我需要在const情況下呼叫,正確的寫法 nodeiteratorbegin const之前網上查到的規則是 c 函式過載 1 函式名稱必須相同。...