c++ - 使用已被占用的函数名称

标签 c++

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

int GetErrorCode(const object * p);

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

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

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

我怎样才能做到这一点?也许有一种方法可以交换函数名称或其他东西?

最佳答案

使用命名空间:

namespace MyLibrary {

    ErrorCode GetErrorCode(const object *p) {
        int origResult = ::ErrorCode(p); 
        // use :: to explicitly call outer function to avoid recursion
        ...
    }

}

然后你可以这样调用这个函数:

MyLibrary::GetErrorCode(obj);

关于c++ - 使用已被占用的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924385/

相关文章:

c++ - &table [0] [0]和&table有什么区别?

c++ - 使用 C++ 迭代器引用无效内存位置

python - 如何在一个 .travis.yml 中测试 Python 和 C++,而不需要多次运行 C++?

c++ - 没有重载函数的实例....(消息框::显示)

c++ - 继承问题中的模板

c++ - 需要修改我的递归算法

c++ - 如何在 C++ 中对成对 vector 的第二个元素执行 lower_bound 操作?

java - 如何将键和鼠标事件发送到 Java 小程序?

c++ - catch exception by reference 是否需要删除?

c++ - double 的有效小数位数?