2010-07-24 56 views
0

我有幾個問題(保持C/C++在上下文中) - 當我想使用命名空間? - 當我想在命名空間內使用類時? - 當我應該使用命名空間內的函數/例程(不在課堂內)?命名空間Class Functions

謝謝。

回答

2

當我想使用命名空間?

只要有助於更好地組織代碼,就應該使用命名空間。您可以將相關的類,函數,常量和類型組合在一個名稱空間下。

當我應該使用命名空間內的函數/例程(不在類內)?

只要函數不需要是成員函數。也就是說,如果一個函數不需要訪問任何類實例的任何成員變量,它應該被實現爲非成員函數。

香草薩特的本週大師文章What's In a Class? -- The Interface PrincipleNamespaces and the Interface Principle討論在接口中使用非成員函數和名稱空間。

0

命名空間提供了一種組織代碼的方法,它對其有用。名稱空間不會爲C++提供任何額外的功能。如果使用得不好,它往往會使代碼更復雜的調試。如果您決定使用名稱空間,請儘量避免在源文件中使用「使用名稱空間」。切勿在頭文件中使用它們。指出特定的類,而不是「使用std :: vector」或類似,或者在作用域內添加「using namespace」的使用。這將使你未來對命名空間的使用更加痛苦。