函式過載的問題

2021-06-21 07:57:05 字數 642 閱讀 8631

一、今天做c++ primer,p231頁有道習題

int *reset(int *)

double *reset(double *)

一開始我覺得是錯誤的,但是答案卻是過載,我就很迷惑,過載的定義是函式名相同,引數不同。但是我以前總會覺得返回型別會相同,從這道題中,才知道,過載只要函式名相同,引數不同,與返回型別沒有關係。

int fun(int)

string fun(string)

這兩個函式也是過載。

二、含有const引數的過載,只有引數是const引用或是指標才是過載。如果是非const的引數,是沒有區別的。

形參與const形參的等價性僅使用於非引用(指標)形參。

int fun(int a)

int fun(const int b)

這兩個函式是一樣的,不是過載。

int fun(int &a)

int fun(const int &a)

這兩個函式是過載,因為是引用型別。

三、在類中

class a

int func();

int function() const;

這兩個函式也是過載,因為在類中有隱含this指標,第乙個是普通的指標,第二個是const指標。所以是過載。

C 函式過載問題

是為了方便使用,允許在同一範圍內宣告幾個功能類似的同名函式。函式名必須相同方能構成函式過載!函式返回值型別 可以相同,也可以不同 注意 函式的返回型別不足以區分兩個過載函式 但要注意的是同名的函式的簽名 引數型別 順序,返回值的型別 不能完全一致 與引數的名字無關 例如 static void sh...

繼承和函式過載的問題

我們先看乙個例子 class base class derived1 public base class derived2 public base class mi public derived1,public derived2 上面的例子,我們定義了類層次結構。當執行下面的語句時將會產生編譯錯誤 ...

函式預設引數 函式過載問題

語法 返回值型別 函式名 引數 預設值 include use namespace std 函式預設引數,若果沒有就用自己設定的值 語法 intfunc1 int a 5,int b 10,int c 2 若c已經有預設值 intfunc1 int a 5,int b 10,int c 主函式 in...