我是C ++的新手,只是想把功能分成文件。这是我的任务中的一个例子。当我编译它时,消息显示:
'b'未声明
当我将#include "q1b.cpp"
添加到q1a.cpp
时,它会失败。如何仅通过更改q1a.cpp
来运行?很高兴知道这个概念。
//q1a.cpp
#include <iostream>
#include "q1b.h"
using namespace std;
int main() {
calC();
cout << b << endl;
return 0;
}
//q1b.cpp
#include "q1a.h"
#include "q1b.h"
int b=1;
void calB(int i) {
b = calA(i) + 1;
}
void cal() {
calB(calA(b));
}
//q1a.h
int calA(int i) {
return i*10;
}
//q1b.h
void calC();
答案 0 :(得分:1)
使用extern
说明符声明变量。
//q1a.cpp
#include <iostream>
#include "q1b.h"
using namespace std;
extern int b; // add this line
int main() {
calC();
cout << b << endl;
return 0;
}
如果约束&#34;只改变q1a.cpp&#34;在那里,您应该将变量声明添加到q1b.h
,因为变量是在q1b.cpp
中定义的。