Qt 中的错误不明确

Ambiguous error in Qt

本文关键字:不明确 错误 Qt      更新时间:2023-10-16

我正在尝试制作一个游戏,我已经为玩家创建了一个类。该类继承 "Entity",该实体继承 QGraphicsItem。

#ifndef PLAYER_H
#define PLAYER_H
#include "entity.h"
class Player : public Entity
{
public:
    Player( QString, int, int, int position );
    QRectF boundingRect() const;
    void paint( QPainter *painter,
                const QStyleOptionGraphicsItem *option,
                QWidget *widget );
    void move_north();
    void move_south();
    void move_west();
    void move_east();
    void start_moving();
    void stop_moving();
    void switch_step();
    bool its_moving();
    void change_pos(int);
private:
    QPoint position;
    bool is_moving;
private signals:
    void Move();
};
#endif // PLAYER_H

但是我不断收到错误"预期':"在'受保护'之前",在第 33 行。

// private signals:
signals:

signals上不应该有访问修饰符,您只对插槽执行此操作。

MOC内部,Qt用自己的访问修饰符替换信号,这是受保护的来源。

这个答案有一些相关的见解。根据定义,信号是protected的,所以你的代码被转换为private protected:,这是编译器抱怨的。

换句话说,你不能说private signals:.就说signals:.