假設一些第三方開發者編寫的函數一個已經採取了函數名
int GetErrorCode(const object * p);
該函數返回只有某些int
值,因此我很想寫我自己的ErrorCode
枚舉類,它包含所有可能的返回值。然後寫一點更新功能:
enum class ErrorCode : int {};
ErrorCode GetErrorCode2(const object * p){
return (ErrorCode)GetErrorCode(p);
}
問題是我希望我的功能被命名爲GetErrorCode
,而不是更少直觀GetErrorCode2
。
我該如何做到這一點?也許有一種方法來交換函數名稱或什麼?
我建議反對'using namespace foo;' - 它引入*一切*並且拋出全局命名空間,超出你的需要。首選更具體的'使用foo :: func;'來引入你需要的特定內容,並儘可能縮小範圍。或者只是堅持完全限定你使用'foo :: func();'。 –
@JesperJuhl:同意。 '你使用它的地方'應該是函數體,但是'使用foo :: func'更好 - 編輯.. – lorro
using語句只會讓名稱衝突再次出現,你將名字衝突帶回這樣做。 – rubenvb