내가 잘못하고있는 것을 이해하도록 도와 줄 수 있습니까? 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;
}
Q_OBJECT는 어떻게 정의됩니까? –
게시물을 업데이트하고 전체 Figure.h 및 Figure.cpp를 포함 할 수 있습니까? – kenrogers
@Scott Jones, Q_OBJECT는 Qt 매크로입니다. – Trts