我试图通过一个项目来熟悉 C++,但我遇到了一个我不太确定如何处理的错误。我有以下代码:
void myclass::write(std::string str) {
write(filedes, (void *)str.c_str(), str.length());
}
其中filedes 是myclass 的一个实例变量。尝试编译它会产生错误:
myclass.cpp: In member function ‘void myclass::write(std::string)’:
myclass.cpp:38: error: no matching function for call to ‘myclass::write(int&, void*, size_t)’
myclass.cpp:37: note: candidates are: void myclass::write(std::string)
myclass.hpp:15: note: void myclass::write(std::string, int)
那么我做错了什么?我不能合法地从方法中调用这个函数吗?