访问类对象

时间:2017-07-26 20:05:12

标签: c++

我有三个.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':未声明的标识符

我认为这不是一个难题,但我无法通过搜索栏解释我的问题。如果你能帮助我,我会很感激。

1 个答案:

答案 0 :(得分:1)

OnPressed()Three的成员,但Three并非来自Two,因此Three没有任何object成员OnPressed()可以访问的内容。这就是编译器所抱怨的。

你需要:

  1. make Three派生自Two

    class Three : public Two
    
  2. 授予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;
    }