我有幾個問題(保持C/C++在上下文中) - 當我想使用命名空間? - 當我想在命名空間內使用類時? - 當我應該使用命名空間內的函數/例程(不在課堂內)?命名空間Class Functions
謝謝。
我有幾個問題(保持C/C++在上下文中) - 當我想使用命名空間? - 當我想在命名空間內使用類時? - 當我應該使用命名空間內的函數/例程(不在課堂內)?命名空間Class Functions
謝謝。
當我想使用命名空間?
只要有助於更好地組織代碼,就應該使用命名空間。您可以將相關的類,函數,常量和類型組合在一個名稱空間下。
當我應該使用命名空間內的函數/例程(不在類內)?
只要函數不需要是成員函數。也就是說,如果一個函數不需要訪問任何類實例的任何成員變量,它應該被實現爲非成員函數。
香草薩特的本週大師文章What's In a Class? -- The Interface Principle和Namespaces and the Interface Principle討論在接口中使用非成員函數和名稱空間。
命名空間提供了一種組織代碼的方法,它對其有用。名稱空間不會爲C++提供任何額外的功能。如果使用得不好,它往往會使代碼更復雜的調試。如果您決定使用名稱空間,請儘量避免在源文件中使用「使用名稱空間」。切勿在頭文件中使用它們。指出特定的類,而不是「使用std :: vector」或類似,或者在作用域內添加「using namespace」的使用。這將使你未來對命名空間的使用更加痛苦。