C ++未在Scope错误中声明

时间:2012-07-04 03:37:19

标签: c++ header scope

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

  

函数调用位于头文件

中的结构声明中

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

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

在这种情况下,verifyDateInputSomeStruct的成员函数。您需要在以下位置定义函数:

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

并使用SomeStruct之类的对象

来调用它
SomeStruct somObj;
somObj.verifyDateInput( strVal );

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

答案 1 :(得分:0)

所以记住孩子们,总是在程序文件中声明你的功能高于他们的用法。问题是我的函数声明在struct声明之下。

感谢Naveen和Chris立刻认出这个