我真的不明白我什麼時候需要using
關鍵字。當你想使用基類中的函數或對象時,你是否總是需要它?即使我沒有重載函數,我也必須使用它。`使用`關鍵字從基類的默認行爲
1
A
回答
2
只有兩種情況需要在課堂上使用using
。首先是當你在類中定義一個與基類中的函數名相同的函數時,並且你想要考慮兩者都使用重載。另一種是當你想使用基類構造函數作爲派生構造函數時。
2
您只需要一個using
-directive的基類成員,當您在派生類和中重載相應的名稱時,您希望使基類重載可見。當你不使用detived類中的名字時,你根本不需要一個using
-directive。
背景是,如果對基類的更改會劫持函數超載,那麼這被認爲是令人驚訝的。因此,基類的重載默認是隱藏的。如果你想讓他們使用,你正在做一個explucit變化。
讓我們假設該規則不適用,並考慮派生類定義成員f(double)
,它被稱爲object.f(0)
。如果基類更改爲提供f(int)
並且重載可見,則新函數將更好地匹配。也就是說,在行爲默默地被改變之前不可見。這可能是一個壞主意。
0
如果處理命名空間,則必須使用它。例如:
using namespace std;
using std::cout;
using std::endl;
// without that you have to type it in following way
std::cout << std::endl;
// which is not the best way if you use it very often,
// but good if you want to use some names in your code
這允許您使用一些具有名稱空間的庫。它已被創建用於隱藏(隱藏)變量,類和方法,否則它會佔用更多的命名空間,並且禁止在項目中使用某些名稱。
+0
OP的問題有[與命名空間無關](http://en.cppreference.com/w/cpp/language/using_declaration) – Mgetz
相關問題
- 1. 使用默認關鍵字的枚舉的默認值?
- 2. Javascript的默認關鍵字
- 3. 在DLL中使用默認關鍵字
- 4. 哪種類型的關鍵字自動默認爲?
- 5. 默認基色關鍵字的CSS更改值
- 6. 的Visual Studio C2580默認關鍵字
- 7. 在php中的默認關鍵字
- 8. 默認關鍵字,具有mssql中的唯一默認值
- 9. 用途及使用「默認」關鍵字的非泛型
- 10. 默認爲鍵的Python字典?
- 11. YARD關鍵字參數使用默認哈希
- 12. Python內建函數作爲關鍵字參數的默認值?
- 13. 爲關鍵字參數任意數量的設置默認值
- 14. PHP - 使用關鍵字以外的類和使用關鍵字裏面的類
- 15. 使用Slimbox2/jCrop禁用鍵盤默認行爲
- 16. SQLAnywhere默認關鍵字作爲參數參數化查詢
- 17. 更改默認幫助鍵行爲
- 18. 基本關鍵字的用途是什麼,但是默認情況下會調用父類構造函數。
- 19. 的Django模型字段:參考自上默認的關鍵字
- 20. 如何將默認的svn:關鍵字啓用?
- 21. QML中默認關鍵字的用途是什麼?
- 22. C++ 11 =默認關鍵字虛擬函數指定默認的純實現
- 23. 默認行爲
- 24. 在WCF中使用新的關鍵字隱藏基類屬性
- 25. 數字鍵盤默認
- 26. 默認iPhone數字鍵盤
- 27. 匿名類型的默認(T)行爲
- 28. 應該使用基本關鍵字嗎?
- 29. 基地址默認爲localhost
- 30. 外鍵默認爲在Django
您需要了解命名空間。 – SLaks
@SLaks OP的問題[與命名空間無關](http://en.cppreference.com/w/cpp/language/using_declaration) – Mgetz