C 使用基类中的派生类变量

C++ using derived class variable in base class

本文关键字:派生 类变量 基类      更新时间:2023-10-16
The below is my code design
class D; 
class A {
   D *d;
   class B:public C {
   somefunctions();
   }
}
class C {
    //I need to use class D variables inside Class C
}

我在C级中所做的任何事情都会带来D类变量,它引发了对不完整的" D类"answers" D类"的前向声明的无效使用。问题是我们无法移动班级职位。需要您的帮助,请提供示例的建议。预先感谢您的帮助

围绕设计的长期和缺点都像意大利面一样。它到处都是,一个人不能简单地完成1堂课并了解应该做什么。

要能够使用D类的任何函数或创建一个函数,编译器必须知道该类可用的功能以及它的大小。因此,要使此内容进行编译,最简单的事情是将C类的实现迁移到其自己的CPP文件中,然后在其顶部包括D标头。如果不是一个选择,那么我认为您应该为自己节省一大堆的心痛,而不是晚些时候重新设计。

类定义取决于其子对象的类型。如果C具有D类型的成员,则必须在C之前定义D。如果在C之后定义了D,则C不得依赖D

类型通常不依赖于函数,因此,如果C的成员函数取决于D,则解决方案很简单:

  • 定义C
  • 定义D
  • 定义依赖DC的成员函数