Exception lancée sans raisons apparentes
Salut tout le monde,
Lorsque j'appelle une méthode (je poste le code correspondant par la suite), visual studio m'envoie une exception (Violation d'accès lors de l'écriture à l'emplacement 0xcdcdcdd5), mais je ne parviens vraiment pas à comprendre pourquoi :/
L'appel qui fait que ça casse tout
Code:
1 2
|
_stateManager->setRightHandState(tracking); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#include "StateManager.hpp"
StateManager::StateManager(void)
{
_leftHandState = no_fingers;
_rightHandState = no_fingers;
}
StateManager::~StateManager(void) {}
void StateManager::setLeftHandState(const FingerState state)
{
_leftHandState = state;
}
// La méthode qui fait tout péter
void StateManager::setRightHandState(const FingerState state)
{
_rightHandState = state;
}
FingerState StateManager::getLeftHandState() const
{
return _leftHandState;
}
FingerState StateManager::getRightHandState() const
{
return _rightHandState;
}
void StateManager::act() const
{
} |
StateManager.hpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#ifndef STATEMANAGER_HPP_INCLUDED
#define STATEMANAGER_HPP_INCLUDED
#include "Singleton.hpp"
#include "FingerState.hpp"
class StateManager :
public Singleton<StateManager>
{
friend class Singleton<StateManager>;
private:
StateManager(void);
virtual ~StateManager(void);
public:
void setLeftHandState(const FingerState state);
void setRightHandState(const FingerState state);
FingerState getLeftHandState() const;
FingerState getRightHandState() const;
void act() const;
protected:
FingerState _leftHandState;
FingerState _rightHandState;
};
#endif // STATEMANAGER_HPP_INCLUDED |
FingerState.hpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#ifndef FINGERSTATE_HPP_INCLUDED
#define FINGERSTATE_HPP_INCLUDED
enum FingerState
{
// Both
no_fingers,
// Right Hand
tracking,
zooming,
shooting,
scrolling,
zoomShooting,
// Left Hand
moving
};
#endif // FINGERSTATE_HPP_INCLUDED |
Singleton.hpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#ifndef SINGLETON_HPP_INCLUDED
#define SINGLETON_HPP_INCLUDED
#include <stdlib.h>
template <typename T>
class Singleton
{
protected:
// Constructeur/destructeur
Singleton () { }
~Singleton () { }
public:
// Interface publique
static T *getInstance ()
{
if (NULL == _singleton)
{
_singleton = new T;
}
return (static_cast<T*> (_singleton));
}
static void kill ()
{
if (NULL != _singleton)
{
delete _singleton;
_singleton = NULL;
}
}
private:
// Unique instance
static T *_singleton;
};
template <typename T>
T *Singleton<T>::_singleton = NULL;
#endif // SINGLETON_HPP_INCLUDED |
Voila, si vous avez quelques pistes je suis preneur !
Merci d'avance
Zouch-K