C++类成员函数命名规则

Bil*_*ard 2 c++ naming

我正在尝试将C套接字库中的一些函数封装到我自己的C++类中.我想定义一个成员函数,它使用与其相应的C函数相同的名称,但具有不同的签名.例如,我想写这个函数

ssize_t MyClass::write(const void *buf);
Run Code Online (Sandbox Code Playgroud)

打电话给

ssize_t write(int fd, const void *buf, size_t count);
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到以下错误

error: no matching function for call to ‘MyClass::write(int&, const char*&, size_t)’
note: candidates are: ssize_t MyClass::write(const char*)
Run Code Online (Sandbox Code Playgroud)

我有正确的#include语句来调用C套接字库,但我对write函数的定义似乎是在影响它.如果我将我的类定义函数的名称更改为其他内容,那么一切似乎都能正常工作.

我有理由相信,更改我的函数名称将成为我的最终解决方案,但有人可以告诉我导致此行为的C++命名规则的名称吗?我想阅读它,所以我知道我将来在做什么.

Unc*_*eiv 6

您是否尝试过调用C函数来解释它是否存在于全局命名空间中,例如:: write?