需要继承类的对象在定义类之前是可见的
Need objects of inheriting classes to be visible before classes are defined
通常您会声明和定义基类,然后在声明继承类的对象之前对继承类做相同的操作。不幸的是,由于可见性的原因,我需要在定义继承类之前声明对象(尽管在定义基类之后)。
我认为我可以为继承类做一个前向声明,但是如果我这样做:
class BaseClass
{
//content
};
class InheritingClass;
它不会识别它正在继承,但是如果我这样做。
class BaseClass
{
//content
};
class InheritingClass: public BaseClass;
编译器希望我完成定义。有可能使我描述的情况有效吗?
我在编译器中尝试过。你可以声明另一个与base相同的类,并使用它进行类型检查,然后在你实际定义它时从它派生。大概这将是您正在寻找的基类的子类别。然而,它不会是确切的类型。如果您不打算划分层次结构,那么我仍然认为您应该使用基类,因为这是您正在寻找的。
class base {int unused;};
class base_specific : public base {};
class actual : public base_specific {
public:
actual (int i) : m(i) {}
int m;
};
int main(){
actual x(4);
}
前向声明不是定义。因此class InheritingClass: public BaseClass;
没有任何意义。但是,您可以先进行前向声明,然后再进行定义:
class base;
class derived;
// ...
class base {};
class derived : public base {};
相关文章:
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 使用智能指针附加的继承对象的深层复制
- 虚拟类继承对象大小问题
- 基对象和继承对象,用于将标准变量包装在C++中
- 为什么私有继承对象允许成员函数将派生的*转换为基*,而外部不能
- 是否有一种方法可以专门使用继承对象的一般方法
- 如何将接口对象强制转换为特定的继承对象
- MFC C++ 无法在动态创建的 CButton 继承对象上设置映像
- 在容器中存储多个继承对象
- QObject基类到继承对象的C++类型转换
- C++ 中的继承对象和属性丢失
- 继承对象列表 - C++
- 静态分配继承对象的数组
- 正确实例化双重继承对象
- 我是否需要使用继承对象(相对于基对象)覆盖我的虚函数?
- c++继承.对象调用超类方法而不是自己的方法
- 基对象和继承对象的向量
- 将多继承对象转换为void*或从void*转换为多继承对象
- 如何在c++中表示继承对象的树?
- 继承对象上指针算术的安全性