C++ 循环依赖问题

C++ 循环依赖问题,c++,visual-c++,C++,Visual C++,我有一个设计问题 我有三个独立的类,即A、B和C。A类有一个B类的数组对象,B类有一个C类的对象 现在,我想从类C中的类a访问一个函数 我怎样才能做到呢 下面是一些代码: 文件classA.h: #pragma once #include <classB.h> class classA { classB objB[10]; void GetData(); }; #pragma一次 #包括 甲级 { B类objB[10]; void GetData(); }; 文

我有一个设计问题

我有三个独立的类,即A、B和C。A类有一个B类的数组对象,B类有一个C类的对象

现在,我想从类C中的类a访问一个函数

我怎样才能做到呢

下面是一些代码:

文件classA.h:

#pragma once
#include <classB.h>

class classA
{
    classB objB[10];
    void GetData();
};
#pragma一次
#包括
甲级
{
B类objB[10];
void GetData();
};
文件classB.h:

#pragma once
#include <classC.h>
class classB
{
    classC objC;
}
#pragma一次
#包括
B类
{
c类objC;
}
文件classC.h:

#pragma once
#include <classA.h>
class classC
{
    classA objA;
}
#pragma一次
#包括
C类
{
奥布贾级;
}
上面的代码创建了一个循环,尽管我添加了一次
#pragma
。我还尝试将classA.h包含在classC.cpp中,但仍然无法访问classA中的函数

非常感谢


Chintan

不确定你基本上想要什么我可以这样想:


在类别C中创建类别A的对象,并使用类别C中存在的对象访问类别A的功能


在类C中创建类A的对象,并使用类C中存在的对象访问类A的函数

如果您想用
类C中的对象调用
类A
的方法,那么您不需要实现继承,如果您想用
类调用
类A
的方法C的
对象,则需要实现继承。

如果要调用
类A的方法,其对象位于
类C
中,则不需要实现继承;如果要调用
类A的方法,则需要实现继承。

@jogojapan说,这更像是一个问题

您可以在类C中使用指向类a的指针成员并使用前向声明

class classA;
class C{
    classA* objAPtr;
};

然后在c.cpp中,您可以添加
#include

,正如@jogojapan所说,这是一个更大的问题

您可以在类C中使用指向类a的指针成员并使用前向声明

class classA;
class C{
    classA* objAPtr;
};

然后在c.cpp中,您可以添加
#include

这里与继承无关。看看您对以下问题所做的修改:真正的问题是头文件的循环依赖性吗?这不是问题的标题所暗示的…@jogojapan:谢谢。我已经重新表述了这个问题。这里与继承无关。看看您对这个问题所做的修改:真正的问题是头文件的循环依赖性吗?这不是问题的标题所暗示的…@jogojapan:谢谢。我已经重新措辞了这个问题。谢谢你的链接和回答。干杯。@chintans在构造时通过默认构造的classB对象数组将classA ptr传递给classC对象是一个全新的问题,特别是如果您想确保classA ptr是拥有classC直接父级classB的classA对象。谢谢您的链接和回答。干杯。@chintans在构造时通过默认构造的classB对象数组将classA ptr传递给classC对象是一个全新的问题,特别是如果您想确保classA ptr是拥有classC直接父级classB的classA对象。