2011-10-13 54 views
1

我有一個類(Event.h):MFC:新對象 - 錯誤消息?

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

在Event.cpp

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

定義在不同的類我已經包含了 「event.h」,我試圖如下:

CEvent* pEvent = new CEvent(); 

但是我得到一個編譯器錯誤:

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 

我在做什麼錯?這是一件非常微不足道的事情,我太接近了。

使用VC 2008 .. fwiw ..

+3

我懷疑這個錯誤出現在你沒有向我們顯示的代碼中。 –

+0

我想不出還有什麼「有趣的」。它是一個MFC中基於對話框的應用程序我必須有一些編譯器設置導致這一點。我試圖創建其他標準對象並得到相同的錯誤。 – ethrbunny

回答

1

發現問題:

#ifdef _DEBUG 
#define DEBUG_NEW 
#endif 

被列入不同的類。這影響到了每個地方的'新'!評論這個清除錯誤。

去圖。

2

CEvent也是MFC中類的名稱。 我會重新命名該類以防止混淆。

+0

的確如此 - 它在代碼中的CMTEvent - 我簡化了這個問題。 – ethrbunny

+0

@ethrbunny啊! –

+0

不,我的意思是我的代碼中的所有「CMTEvent」。當我將它輸入到StackOverflow中時,我只是使用了「CEvent」。如果這可以簡化這個問題,我可以編輯這個問題。 – ethrbunny