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

我正在尝试执行 strcpy ,data其中包含一些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

如果您需要更多帮助,您应该使您正在编译的所有两个文件(program.cpp 和 header.h)都可用。

于 2012-06-10T18:23:44.777 回答