2010-02-16 58 views
0

我想繼承CObject,但我沒有這樣做。 我的類看起來是這樣的:如何從CObject繼承併成功編譯?

class CCanMessage : public CObject 
{ 
public: 
    CCanMessage(void); 
    ~CCanMessage(void); 

    unsigned int m_id; //can-id 
    CANMessageTypes m_msgType; //this is an enum 
    unsigned char m_len; 
    char *m_pCmdStr;    
}; 

構造函數和析構函數是空的。

當我編譯我得到error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'。一段時間以來,我一直在尋找解釋,但沒有找到答案。我認爲這個錯誤非常簡單,但我似乎無法找到它。

值得注意的是,如果我不在編譯錯誤消失的任何地方使用CCanMessage類。錯誤指向類的聲明,而不是我使用類的任何地方。

+0

同時向我們展示您的構造函數的實際代碼。上面的代碼在VS2008下用一個空白的構造函數和析構函數編譯得很好。 – Goz

+0

正如我寫的,它編譯得很好,如果你不使用它在任何地方...... – AnnaR

回答

1

我相信你的問題是與這部分從CObject(afx.h):

private: 
CObject(const CObject& objectSrc);    // no implementation 
void operator=(const CObject& objectSrc);  // no implementation 

儘量提供的拷貝構造函數和賦值運算符爲您CCanMessage實現。

+0

剛剛發現了我自己呢!感謝您抽出時間。 – AnnaR