使用已经使用的函数名称

时间:2016-08-12 18:30:40

标签: c++

假设某些第三方开发人员编写了一个函数

int GetErrorCode(const object * p);

此函数仅返回某些int值,因此我很想编写自己的ErrorCode枚举类,其中包含所有可能的返回值。然后写一点更新函数:

enum class ErrorCode : int {};
ErrorCode GetErrorCode2(const object * p){
  return (ErrorCode)GetErrorCode(p);
}

问题是我希望我的函数名为GetErrorCode而不是那么不直观GetErrorCode2

我怎么可能实现这一目标?也许有办法交换函数名称或什么?

2 个答案:

答案 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; - 在您使用它的地方,最好是在函数体内。