Я пытаюсь инкапсулировать некоторые функции из библиотеки сокетов C в свой собственный класс 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++, которое вызывает это поведение? Я хотел бы прочитать об этом, чтобы я знал, что я делаю в будущем.