-1

嗨,我正在自学 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);

谢谢你的帮助!

4

2 回答 2

1

函数调用在头文件的结构声明中

你的意思是你在结构定义中写了这样的声明?

struct SomeStruct
{
    // variables
    bool verifyDateInput(const char* input);
};

在这种情况下verifyDateInput是 的成员函数SomeStruct。您将需要在某处定义函数,例如:

bool SomeStruct::verifyDateInput( const char* input );
{
    // code
}

并使用SomeStruct类似的对象调用它

SomeStruct somObj;
somObj.verifyDateInput( strVal );

如果您不是指成员函数,请尝试在结构定义之外编写它。

于 2012-07-04T03:53:37.457 回答
0

所以记住孩子们,总是在程序文件中声明你的函数高于它们的用法。问题是我的函数声明低于结构声明。

感谢 Naveen 和 chris 立即认识到这一点

于 2012-07-04T04:17:14.560 回答