[c++][problème]no matching function for call to...

no matching function for call to... [c++][problème] - C++ - Programmation

Marsh Posté le 12-03-2010 à 01:03:33    

bonjour tout le monde!
 
voici mon problème : le compilateur sort l'erreur suivante :
 
no matching function for call to 'EventHandler::EventHandler()'          COGLSpace.cpp 76
 
COGLSpace.cpp

Citation :


// Header files
#include "COGLSpace.h"
 
COGLSpace::COGLSpace(QWidget *parent) : QGLWidget(parent)   // <-- line 76!!!
{
 m_pParentWidget = parent;
 initializeMembers();
}
 


 
EventHandler.h

Citation :


#ifndef EVENTHANDLER_H
#define EVENTHANDLER_H
 
// Libraries
#include <QMouseEvent>
#include <QWheelEvent>
 
//Headers
//#include "COGLSpace.h"
class COGLSpace;
 
class EventHandler
{
private:
 COGLSpace *m_oglSpace;
 
public:
 EventHandler(COGLSpace* oglSpace);
 void mousePressEvent( QMouseEvent *event );
 void mouseMoveEvent( QMouseEvent *event );
 void mouseReleaseEvent( QMouseEvent *event );
 void wheelEvent( QWheelEvent *event );
};
 
#endif // EVENTHANDLER_H


 
EventHandler.cpp

Citation :


#include "EventHandler.h"
 
EventHandler::EventHandler(COGLSpace* oglSpace)
{
 m_oglSpace = oglSpace;
}
 
void mousePressEvent( QMouseEvent *event )
{
 m_oglSpace->mouseButtonPressed(event->x(), event->y(), event->button());
}
 
void mouseMoveEvent( QMouseEvent *event )
{
 m_oglSpace->mouseMoved(event->x(), event->y());
}
 
void mouseReleaseEvent( QMouseEvent *event )
{
 m_oglSpace->mouseButtonReleased();
}
 
void wheelEvent( QWheelEvent *event )
{
 m-oglSpace->wheelEvent(event->delta());
}


 
voilà.
 
je suis débutant en c++, je ne comprend pas bien pourquoi cette erreur arrive...
 
merci de m'aider!


Message édité par shadow_heart le 12-03-2010 à 01:04:44
Reply

Marsh Posté le 12-03-2010 à 01:03:33   

Reply

Marsh Posté le 12-03-2010 à 06:57:18    

EventHandler n'a pas de constructeur par défaut, or tu agrége un EventHabndler dans ta classe. Il faut que tu rajoute la construction de EH dans la liste d'initialsiation de COGLSpace

Reply

Marsh Posté le 12-03-2010 à 09:55:55    

merci pour ta réponse!
 
je le fait un peu plus loin dans ma méthode initializeMembers()
 

Citation :


void COGLSpace::initializeMembers()
{
 m_pOGLTiles = NULL;
 
 resetViewpoint();
 
 m_iShiftSensi = 500;
 m_iScrollSensi = 10;
 m_eColorCodingMode = NO_COLOR;
 
 m_iID = -1;
 m_iPickX = -1;
 m_iPickY = -1;
 m_bPickState = false;
 m_bZoomState = false;
 m_bDisplayTriad = true;
 
 m_prgdOrientations = NULL;
 m_pCoordinates = NULL;
 m_rgpbClassFlags = NULL;
 m_piPointName = NULL;
 
// COGLSpace* yodes = &this;
 
// m_eventHandler = new EventHandler(this);
 EventHandler yodes(this);
 m_eventHandler = yodes;
}


 
PS: que veut tu dires pas "tu agrége un EventHabndler dans ta classe"????

Reply

Marsh Posté le 12-03-2010 à 10:20:04    

donne COGLSpace.hpp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed