嗨,我正在教自己C ++,我收到了这个错误
'verifyDateInput' was not declared in this scope
在下面的verifyDateInput调用中发生错误。
void setAll(std::string dateString) {
if(verifyDateInput(dateString.c_str())) {
std::vector<std::string> results = split(dateString, '/');
month = results.at(0).;
day = results.at(1);
year = results.at(2);
}
}
我确信这只是我没有得到的语言的一些细微差别。函数调用在头文件中的结构声明中,并且在头文件中我有函数的声明。 (不确定声明是否是正确的词.....我只是写函数签名的事情)
bool verifyDateInput(const char* input);
感谢您的帮助!
答案 0 :(得分:1)
函数调用位于头文件
中的结构声明中
你的意思是你在结构定义中写了这样的声明吗?
struct SomeStruct
{
// variables
bool verifyDateInput(const char* input);
};
在这种情况下,verifyDateInput
是SomeStruct
的成员函数。您需要在以下位置定义函数:
bool SomeStruct::verifyDateInput( const char* input );
{
// code
}
并使用SomeStruct
之类的对象
SomeStruct somObj;
somObj.verifyDateInput( strVal );
如果您不是指成员函数,请尝试将其写在结构定义之外。
答案 1 :(得分:0)
所以记住孩子们,总是在程序文件中声明你的功能高于他们的用法。问题是我的函数声明在struct声明之下。
感谢Naveen和Chris立刻认出这个