我有三个.h和三个.cpp文件。
我在2.h中的第一个.h(比如1.h)中创建了一个类的对象。我想在我的3.cpp。
中使用该类对象1.H
class One
{
bool pressed;
...
}
2.H
#include "1.h"
Class Two
{
public:
One object;
...
}
3.H
#include "2.h"
Class Three
{ ...
}
3.cpp
#include "3.h"
void Three::OnPressed()
{
object.pressed = true;
}
它允许我在没有抱怨的情况下制作对象,但是,我的程序在运行时会出现此错误:
错误C2065'object':未声明的标识符
我认为这不是一个难题,但我无法通过搜索栏解释我的问题。如果你能帮助我,我会很感激。
答案 0 :(得分:1)
OnPressed()
是Three
的成员,但Three
并非来自Two
,因此Three
没有任何object
成员OnPressed()
可以访问的内容。这就是编译器所抱怨的。
你需要:
make Three
派生自Two
class Three : public Two
授予Three
One
实例的成员(就像您对Two
所做的那样):
class Three
{
public:
One object;
void OnPressed();
...
};
void Three::OnPressed()
{
object.pressed = true;
}
或者给它一个Two
的实例:
class Three
{
public:
Two object2;
void OnPressed();
...
};
void Three::OnPressed()
{
object2.object.pressed = true;
}