假设某些第三方开发人员编写了一个函数
int GetErrorCode(const object * p);
此函数仅返回某些int
值,因此我很想编写自己的ErrorCode
枚举类,其中包含所有可能的返回值。然后写一点更新函数:
enum class ErrorCode : int {};
ErrorCode GetErrorCode2(const object * p){
return (ErrorCode)GetErrorCode(p);
}
问题是我希望我的函数名为GetErrorCode
而不是那么不直观GetErrorCode2
。
我怎么可能实现这一目标?也许有办法交换函数名称或什么?
答案 0 :(得分:11)
使用名称空间:
namespace MyLibrary {
ErrorCode GetErrorCode(const object *p) {
int origResult = ::ErrorCode(p);
// use :: to explicitly call outer function to avoid recursion
...
}
}
然后你可以把这个函数称为:
MyLibrary::GetErrorCode(obj);
答案 1 :(得分:2)
将您的函数放在通常使用的命名空间中。您可能有using namespace foo;
- 更好,using foo::GetErrorCode;
- 在您使用它的地方,最好是在函数体内。