class CConfFile
{
public:
CConfFile(const std::string &FileName);
~CConfFile();
...
std::string GetString(const std::string &Section, const std::string &Key);
void GetString(const std::string &Section, const std::string &Key, char *Buffer, unsigned int BufferSize);
...
}
string CConfFile::GetString(const string &Section, const string &Key)
{
return GetKeyValue(Section, Key);
}
void GetString(const string &Section, const string &Key, char *Buffer, unsigned int BufferSize)
{
string Str = GetString(Section, Key); // *** ERROR ***
strncpy(Buffer, Str.c_str(), Str.size());
}
为什么我在第二个函数中遇到错误too few arguments to function ‘void GetString(const std::string&, const std::string&, char*, unsigned int)'
?
由于
答案 0 :(得分:11)
您没有使用CConfFile::
确定第二个功能的范围。它被编译为自由函数,因此对GetString
的调用解析为自身(递归),这需要四个参数。
答案 1 :(得分:3)
因为顾名思义CConFile::GetString()
是一个类成员函数,因为在第二个函数中调用它是不可访问的。
您声明的另一个功能GetString()
是全局。
您忘记将CConFile::
添加到第二个功能...
答案 2 :(得分:0)
我想说这是因为没有CConfFile实例来调用该函数,所以假设你正在调用另一个函数。