Variable type ‘MaximumSizeMax‘ is an abstract class

myuicomeraidbase.cpp:10:20: Variable type 'MaximumSizeMax' is an abstract class
basemaximumsize.h:8:18: unimplemented pure virtual method 'setMaximumSize' in 'MaximumSizeMax'

这个错误信息表明在 C++ 程序中存在一个问题,涉及到抽象类和纯虚函数。

  1. 错误解释

    • MaximumSizeMax 是一个抽象类。这意味着它包含至少一个纯虚函数,而纯虚函数是没有实现的函数,只是声明。
    • 在 MaximumSizeMax 类中,有一个纯虚函数 setMaximumSize 没有被实现。
    • 在 myuicomeraidbase.cpp 文件的第 10 行,你试图以某种方式使用 MaximumSizeMax 类型,但由于它是一个抽象类且包含未实现的纯虚函数,所以不能实例化或以其他方式直接使用。
  2. 解决方法

    • 实现纯虚函数:如果你控制 MaximumSizeMax 类的定义,你可以在类中添加 setMaximumSize 函数的具体实现。这样,MaximumSizeMax 就不再是一个抽象类,可以被实例化。
    • 继承并实现:如果 MaximumSizeMax 是设计为由其他类继承的基类,那么你需要在继承自 MaximumSizeMax 的子类中实现 setMaximumSize 方法。
    • 使用指针或引用:如果你不需要实例化 MaximumSizeMax,而是需要使用它的多态性质,你可以使用指向 MaximumSizeMax 的指针或引用,并确保这些指针或引用实际指向的是实现了所有纯虚函数的子类对象。
  3. 示例
    假设你有如下的类定义:

    class MaximumSizeMax {
    public:
        virtual void setMaximumSize(int width, int height) = 0; // 纯虚函数
    };
    
    class ConcreteMaximumSize : public MaximumSizeMax {
    public:
        void setMaximumSize(int width, int height) override {
            // 实现细节
        }
    };

    在这个例子中,ConcreteMaximumSize 继承了 MaximumSizeMax 并实现了 setMaximumSize 方法。你可以实例化 ConcreteMaximumSize 而不是 MaximumSizeMax

  4. 结论
    你需要检查你的设计,确定 MaximumSizeMax 类的用途,并根据需要选择适当的方法来解决这个问题。如果 MaximumSizeMax 是为了被继承,确保所有子类都实现了必要的纯虚函数。如果你错误地尝试直接实例化一个抽象类,那么你需要重新考虑你的设计或使用方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值