-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また、 likeのオブジェクトを使用して呼び出します

SomeStruct somObj;
somObj.verifyDateInput( strVal );

メンバー関数を意図していない場合は、構造体定義の外に書いてみてください。

于 2012-07-04T03:53:37.457 に答える
0

したがって、子供たちのことを覚えておいてください。常に、プログラム ファイルでの使用法の上に関数を宣言してください。問題は、関数宣言が構造体宣言の下にあることでした。

これをすぐに認識してくれた Naveen と chris に感謝します

于 2012-07-04T04:17:14.560 に答える