我正在尝试访问位于父类(TestClassOne.h)内部的对象(TestClassThree.h)内部的变量。每个类都在其自己的文件中,当我尝试导入文件以实例化这些类时,它会崩溃。我怀疑这是由于导入循环造成的。我认为我不能使用前向类声明,因为那样会限制对变量的访问。如何从TestClassTwo访问TestClassThree内部的变量?

//--TestClassOne.h--
#include "TestClassTwo.h"
#include "TestClassThree.h"

class TestClassOne {
public:
    TestClassTwo *myVariable;
    TestClassThree *mySecondVariable;

    TestClassOne() {
        myVariable = new TestClassTwo(this);
        mySecondVariable = new TestClassThree();
    }
};

//--TestClassTwo.h--
#include "TestClassOne.h" //<-- ERROR

class TestClassTwo {
public:
    TestClassOne *parent;

    TestClassTwo(TestClassOne *_parent) : parent(_parent) {

    }

    void setValue() {
        parent->mySecondVariable->mySecondVariable->value = 10;
    }

};

最佳答案

您可以使用forward class declarationsfriend关键字

09-05 23:06