2013-05-09 2 views
0

내가 잘못하고있는 것을 이해하도록 도와 줄 수 있습니까? NetBeans, MinGW 컴파일러 및 Qt 라이브러리가 포함되어 있습니다.'Figure :: Figure()'의 프로토 타입이 'Figure'클래스의 어떤 것과도 일치하지 않습니다.

* 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; 
} 
+0

Q_OBJECT는 어떻게 정의됩니까? –

+0

게시물을 업데이트하고 전체 Figure.h 및 Figure.cpp를 포함 할 수 있습니까? – kenrogers

+0

@Scott Jones, Q_OBJECT는 Qt 매크로입니다. – Trts

답변

4

무엇에이 일을 template <class T> 당신의 파일 바로 전에 Figure::Figure() defini 기각? Figure 클래스가 .h 파일의 템플릿으로 선언되지 않았습니다.

+0

'QObject' 파생 클래스는'moc' 때문에 클래스 템플릿을 지원할 수 없습니다. – cmannett85

관련 문제