相互包含头文件和类成员 C++

问题描述

我有以下情况:

3 个 C++ 类:

A 类 B级 C类

class A
{
    int member;
    B bmember;
};


class B
{
    int member;
    std::shared_ptr <A> amember;
    C cmember;
};

class C
{
    int member;
    std::shared_ptr <A> amember;
};

每个类都实现了使用其他类的公共成员函数的函数。文件结构如下:

class1.cpp,class1.hpp 包含 class2.hpp

class2.cpp、class2.hpp 包括 class3.hpp 和 class1.hpp

class3.cpp,class3.hpp 包含 class1.hpp

在每个头文件中使用 #pragma once 使我免于无限递归循环。我正在构建一个 cmake 项目,将每个类构建到一个库中。他们互相瞄准对方。

然而,因为没有 ClassB 到 ClassA 的前向声明,我收到“未声明的错误”

我需要每个类都有对其他类的引用,并且仍然能够访问它们的功能。我怎样才能做到这一点?如果我也需要,我愿意合并文件,但我想让库模块化,而不是全部在一个文件中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...