C 中using的作用

2021-06-10 06:45:09 字數 1136 閱讀 6175

1.在當前檔案中引入命名空間

這是我們最熟悉的用法,例如:using namespace std;

2.在子類中使用 using 宣告引入基類成員名稱(參見c++ primer)

在private或者protected繼承時,基類成員的訪問級別在派生類中更受限:

class base 

protected:

std::size_t n;

};class derived : private base ;

在這一繼承層次中,成員函式 size 在 base 中為 public,但在 derived 中為 private。為了使 size 在 derived 中成為 public,可以在 derived 的 public

部分增加乙個 using 宣告。如下這樣改變 derived 的定義,可以使 size 成員能夠被使用者訪問,並使 n 能夠被 derived 的派生類訪問:

class derived : private base ;

另外,當子類中的成員函式和基類同名時,子類中重定義的成員函式將隱藏基類中的版本,即使函式原型不同也是如此。如果基類中成員函式有多個過載版本,派生類可以重定義所繼承的 0 個或多個版本,但是通過派生型別只能訪問派生類中重定義的那些版本,所以如果派生類想通過自身型別使用所有的過載版本,則派生類必須要麼重定義所有過載版本,要麼乙個也不重定義。有時類需要僅僅重定義乙個過載集中某些版本的行為,並且想要繼承其他版本的含義,在這種情況下,為了重定義需要特化的某個版本而不得不重定義每乙個基類版本,可能會令人厭煩。可以在派生類中為過載成員名稱提供 using 宣告(為基類成員函式名稱而作的 using 宣告將該函式的所有過載例項加到派生類的作用域),使派生類不用重定義所繼承的每乙個基類版本。乙個 using 宣告只能指定乙個名字,不能指定形參表,使用using宣告將名字加入作用域之後,派生類只需要重定義本型別確實必須定義的那些函式,對其他版本可以使用繼承的定義。

下面是**示例:

#include using

namespace std;

class base

};class derived : base

;int main()

C 中using的作用

1.在當前檔案中引入命名空間 這是我們最熟悉的用法,例如 using namespace std 2.在子類中使用 using 宣告引入基類成員名稱 參見c primer 在private或者protected繼承時,基類成員的訪問級別在派生類中更受限 class base protected st...

C 中using的作用

1.在當前檔案中引入命名空間 這是我們最熟悉的用法,例如 using namespace std 2.在子類中使用 using 宣告引入基類成員名稱 參見c primer 在private或者protected繼承時,基類成員的訪問級別在派生類中更受限 class base protected st...

C 中using關鍵字的作用

c 中using有兩種作用。1 作為指令,用於引用命名空間的,如using system.io 2 作為語句,using定義乙個範圍,在退出using之後,在此範圍末尾之後便自動釋放物件,起到了自動釋放資源的作用。如下面筆者使用streamwriter列的writeline方法先向指定文字檔案寫入資...