0
//This is the header file (header.h)
class about{

char w[10][40];

public:
void get(const char core[ ][2000], int num);


};

~ ~

//This is the cpp file (program.cpp)
 #include "header.h"
 #include <cstring>


void about::get(const char core[ ][2000], int num){

char data[2000];


strcpy(w[0], data);


}

私は得ていますprogram.cpp:13: error: 'w' was not declared in this scope

dataクラスのプライベートセクションからの情報を含むstrcpyを実行wし、メンバー関数を使用してそれらにアクセスしようとしています。

何かを忘れたのか、なぜそれらにアクセスできないのかわかりません。

Sergey Vakulenko からの最後の回答に感謝します

ヘッダー ファイルの順序は非常に重要です。

そのはず

 #include <cstring>
 #include "header.h"

いいえ

 #include "header.h"
 #include <cstring>
4

2 に答える 2

1

これらのヘッダーを cpp ファイルに追加します。

#include <stdio.h>
#include <string.h>
#include "nameofheader.h"

編集(より完全な説明):

私にとって、その例はエラーを出さない:

1.h:

class about{

char w[10][40];

public:
void get(const char core[ ][2000], int num);


};

1.cpp:

#include <stdio.h>
#include <string.h>
#include "1.h"
//This is the cpp file (program.cpp)

void about::get(const char core[ ][2000], int num){

char data[2000];


strcpy(w[0], data);


}

int main (int argc, char** argv) {

return 0;
}

g ++で完了:

g++ 1.cpp -o 1

于 2012-06-10T18:20:28.223 に答える
1

あなたのプログラムは、あなたがここで私たちに示しているように、問題なくコンパイルされるはずです:

ideone.com/Bj6VU

さらにヘルプが必要な場合は、コンパイルしている 2 つのファイル (program.cpp と header.h) をすべて利用できるようにする必要があります。

于 2012-06-10T18:23:44.777 に答える