'Figure::Figure()'的原型与类中的任何'Figure'都不匹配

prototype for 'Figure::Figure()' does not match any in class 'Figure'

本文关键字:Figure 任何 不匹配 原型      更新时间:2023-10-16

你能告诉我我做错了什么吗?我有NetBeans, MinGW编译器,和Qt库包括。

* Figure.h *

class Figure: public QObject{ //18
    Q_OBJECT
        public:
                Figure(); //32               
};

Figure.cpp

Figure:: Figure(){   // 16              
}

错误信息是:

Figure.h:18:7: error: candidates are: Figure::Figure(const Figure&)
Figure.h:32:17: error:                 Figure::Figure()
Figure.cpp:16:1: error: prototype for 'Figure::Figure()' does not match any in class    'Figure'

顺便说一下,我已经尝试遵循这个Figure(const Figure&)模式。

后来添加的(需要更多代码):

Figure.h

#ifndef FIGURE_H
#define FIGURE_H
#include <QtGui/QApplication>
#include <QFrame>
#include <initializer_list>
#pragma once
enum colours {RED, GREEN, BLUE, YELLOW, MAGENTA};
class Figure: public QObject{
    Q_OBJECT
        public:
                int shape[4][4]; 
        private:                
                int previous_shape;
                int current_shape;
                int current_x; 
                int current_y; 
                int previous_x;
                int previous_y;
                colours colour;     
        public:
                Figure();                
                int testint;
                int test[2];                
                void change_figure();
                void roll_back(); 
                void set_coordinates(int direction);
                void set_colour();
                void rotate();
                int get_x();
                int get_y();
                int* get_shape();
//        signals:
//                void transmitInfo();            
};

Figure.cpp

#include "Figure.h"
#include <cstdlib> 
#include <QtGui> 
#include <QtGui/QApplication> 
#include <iostream>
#include <initializer_list>
template <class T>
Figure:: Figure(){         
        //shape = {{1, 1}, {1, 1}};
        previous_shape = 1;
        current_shape = 1;
        current_x = 5;
        current_y = 5;
        previous_x = 5;
        previous_y =5; 
        colour = RED;   
}

Figure::Figure()定义之前,template <class T>在您的.cpp文件中做什么?您的Figure类没有在.h文件中声明为模板。