2011-10-13 3 views
1

J'ai une classe (Event.h):MFC: nouvel objet - message d'erreur?

class CEvent 
{ 
    public: 
    CEvent(); 
    ~CEvent(); 
    int nVal; 
}; 

défini dans event.cpp

#include "event.h" 
CEvent::CEvent() {} 
CEvent::~CEvent() {} 

Dans une autre classe, j'ai inclus "event.h" et je tente ce qui suit:

CEvent* pEvent = new CEvent(); 

Mais Im obtenir une erreur de compilation:

error C2440: 'initializing' : cannot convert from 'CEvent' to 'CEvent *' 
1>  No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 

Qu'est-ce que je fais mal? C'est quelque chose de vraiment trivial et je suis trop proche pour le voir.

avec VC 2008 .. FWIW ..

+3

Je suppose que la faute est dans un code que vous ne nous montrez pas. –

+0

Je ne peux pas penser à quoi d'autre est «intéressant». C'est une application de base de dialogue dans MFC. Je dois avoir un réglage du compilateur qui cause cela. J'ai essayé de créer d'autres objets standards et j'ai eu la même erreur. – ethrbunny

Répondre

1

trouvé le problème:

#ifdef _DEBUG 
#define DEBUG_NEW 
#endif 

a été inclus dans une autre classe. Cela a eu un impact «nouveau» partout! Commenter cela efface l'erreur.

Allez à la figure.

2

CEvent est aussi le nom d'une classe dans MFC. Je renommerais la classe pour éviter toute confusion.

+0

Sincèrement - son CMTEvent dans le code - j'ai simplifié pour la question. – ethrbunny

+0

@ethrbunny Aha! –

+0

Non .. Je veux dire son tout "CMTEvent" dans mon code. Quand je l'ai tapé dans StackOverflow, j'ai juste utilisé "CEvent" à la place. Je peux éditer la question si cela va simplifier cela. – ethrbunny

Questions connexes