0

これは私のコードです:

  • メインヘッダー.h

    void displaygrid(int (* _grid)[10][10] , string msg );
    
  • 何か.cpp

    #include <string>
    #include "mainheader.h"
    
    void displaygrid(int (* _grid)[10][10], string msg = "" )
    {
       //body goes here
    }
    

コンパイラは、ヘッダーの前方宣言の行で次のように述べています。

_grid と string は宣言されていない識別子です

とはいえ、あくまでプロトタイプなので の存在は気にしなくて_gridいいですよね?

また、文字列の後にヘッダーが含まれていますが、文字列についても認識していません。前方宣言の代わりに関数を呼び出そうとしているようです。どうしたの?

4

4 に答える 4

4

stringを使用する必要があるためですstd::string

于 2013-02-05T16:31:54.750 に答える
1

ヘッダーの __grid と文字列 (前方宣言かどうか) について知る必要があります。少なくともそのstruct __grid;上のどこかに a などを配置して、それが何であるかの手がかりを得る必要があります。文字列も同じ...

于 2013-02-05T16:35:25.277 に答える
1

#include <string>で、をmainheader.h参照する必要があります。また、取得に必要なものをすべて含める必要があります。stringstd::string_grid

//mainheader.h
#include <string>
void displaygrid(int (* _grid)[10][10] , std::string msg );

関連記事はこちら.

于 2013-02-05T16:35:56.930 に答える
0

また、既定の引数を実装ではなく、ヘッダー ファイルに含める必要があります。これは、既定の引数を呼び出すコードに、既定値を設定できることを知らせる必要があるためです。msg

于 2013-02-05T16:35:26.987 に答える