我正在尝试将 C 套接字库中的一些函数封装到我自己的 C++ 类中。我想定义一个成员函数,它使用与其对应的 C 函数相同的名称,但具有不同的签名。例如,我想编写函数
ssize_t MyClass::write(const void *buf);
调用
ssize_t write(int fd, const void *buf, size_t count);
编译时出现以下错误
error: no matching function for call to ‘MyClass::write(int&, const char*&, size_t)’
note: candidates are: ssize_t MyClass::write(const char*)
我有正确的#include
语句来调用 C 套接字库,但我对写入函数的定义似乎掩盖了它。如果我将类定义函数的名称更改为其他名称,一切似乎都正常。
我有理由确定更改我的函数名称将是我的最终解决方案,但是有人可以告诉我导致这种行为的 C++ 命名规则的名称吗?我想阅读它,以便我知道我将来会做什么。