【发布时间】:2017-03-09 04:33:24
【问题描述】:
我写了一个示例代码来尝试复制我在学校项目中遇到的关于对象范围的错误:
在文件中:classTest.cpp
#include "headerone.h"
#include "headertwo.h"
#include <iostream>
using namespace std;
int main() {
ClassOne* pntrObj1 = new ClassOne;
ClassTwo* pntrObj2 = new ClassTwo;
pntrObj1->testClassOne();
return 0;
}
在文件中:headerone.h
#ifndef HEADERONE_H
#define HEADERONE_H
#include "headertwo.h"
#include <iostream>
using namespace std;
class ClassOne {
public:
void testClassOne() {
cout << "One Worked\n";
pntrObj2->testClassTwo();
}
};
#endif
在文件中:headertwo.h
#ifndef HEADERTWO_H
#define HEADERTWO_H
#include <iostream>
using namespace std;
class ClassTwo {
public:
void testClassTwo() {
cout << "Two Worked";
}
};
#endif
需要明确的是,错误是:pntrObj2 未在此范围内声明。错误来自文件headerone.h
如果我不得不猜测,我需要以某种方式传递参考,但我不确定从哪里开始。任何帮助表示赞赏。
【问题讨论】:
-
猜测你进入 c++ 的方式是一种非常简单的关闭它的方法。你真的应该从一本好书开始:stackoverflow.com/questions/388242/…