myuicomeraidbase.cpp:10:20: Variable type 'MaximumSizeMax' is an abstract class
basemaximumsize.h:8:18: unimplemented pure virtual method 'setMaximumSize' in 'MaximumSizeMax'
这个错误信息表明在 C++ 程序中存在一个问题,涉及到抽象类和纯虚函数。
-
错误解释:
MaximumSizeMax是一个抽象类。这意味着它包含至少一个纯虚函数,而纯虚函数是没有实现的函数,只是声明。- 在
MaximumSizeMax类中,有一个纯虚函数setMaximumSize没有被实现。 - 在
myuicomeraidbase.cpp文件的第 10 行,你试图以某种方式使用MaximumSizeMax类型,但由于它是一个抽象类且包含未实现的纯虚函数,所以不能实例化或以其他方式直接使用。
-
解决方法:
- 实现纯虚函数:如果你控制
MaximumSizeMax类的定义,你可以在类中添加setMaximumSize函数的具体实现。这样,MaximumSizeMax就不再是一个抽象类,可以被实例化。 - 继承并实现:如果
MaximumSizeMax是设计为由其他类继承的基类,那么你需要在继承自MaximumSizeMax的子类中实现setMaximumSize方法。 - 使用指针或引用:如果你不需要实例化
MaximumSizeMax,而是需要使用它的多态性质,你可以使用指向MaximumSizeMax的指针或引用,并确保这些指针或引用实际指向的是实现了所有纯虚函数的子类对象。
- 实现纯虚函数:如果你控制
-
示例:
假设你有如下的类定义: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。 -
结论:
你需要检查你的设计,确定MaximumSizeMax类的用途,并根据需要选择适当的方法来解决这个问题。如果MaximumSizeMax是为了被继承,确保所有子类都实现了必要的纯虚函数。如果你错误地尝试直接实例化一个抽象类,那么你需要重新考虑你的设计或使用方法。
2310

被折叠的 条评论
为什么被折叠?



