non-static member ‘setType‘ found in multiple base-class subobjects of type ‘Shape‘:...

在使用QT进行图形界面开发时,博主遇到了一个关于多继承的问题。由于`Circle`和`Rect`类都从`Shape`类继承,而`RectCircle`同时继承了`Rect`和`Circle`,导致了`setType`等成员函数名冲突。为了解决这个错误,博主采取了域指定的方法,即在公有成员变量前指定一个基类,从而解决了重复定义的问题。通过这种方法,博客作者成功地避免了命名冲突并完成了画板大作业。
摘要由CSDN通过智能技术生成

问题描述:

这是我在用QT写画板大作业的时候遇到的:
non-static member ‘setType’ found in multiple base-class subobjects of type ‘Shape’:…
它说我重复定义原因是因为多个基类继承导致成员名重复

class Shape
{
public:
		...
		
        QString getType();	
        QPen getPen();			
        QList<QPoint> m_PointList;	
        bool m_bIsSelect;	

        QPoint start;           // 初始
        QPoint end;
      ...

};

class Circle : public Shape			//圆
{
public:
    Circle();
    void paint(QPainter * painter);        //绘画
    void initPoints(QPoint point);
    QPoint getShapeCenter();
    void moveToPoint(QPoint point);
};

class Rect : public Shape		//矩形
{
public:
        Rect();
        void initPoints(QPoint point);
        void paint(QPainter * painter);
        QPoint getShapeCenter();
        void moveToPoint(QPoint point);
};
//画一个组合图形 矩形内画个圆
class RectCircle: public Rect,public Circle
{
public:
    RectCircle();
    void initPoints(QPoint point);
    void paint(QPainter * painter);         //绘图
    QPoint getShapeCenter();
    void moveToPoint(QPoint point);         //移动图形
};

在这里插入图片描述
这一堆error看的我好揪心!!!

解决方案:域名指定在这里插入图片描述

我在公有的变量指定了一个基类,问题完美解决

参考链接
https://blog.csdn.net/qq_24890953/article/details/104110050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值