我正在尝试将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套接字库,但我对write函数的定义似乎是在影响它.如果我将我的类定义函数的名称更改为其他内容,那么一切似乎都能正常工作.
我有理由相信,更改我的函数名称将成为我的最终解决方案,但有人可以告诉我导致此行为的C++命名规则的名称吗?我想阅读它,所以我知道我将来在做什么.
您是否尝试过调用C函数来解释它是否存在于全局命名空间中,例如:: write?