2010-02-16 5 views
0

J'essaie d'hériter de CObject mais je ne le fais pas. Ma classe ressemble à ceci:Comment héritez-vous de CObject et compilez-vous avec succès?

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;    
}; 

Le constructeur et destructor sont vides. Lorsque je compile, je reçois error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'. Je cherchais depuis quelques temps une explication sans en trouver une. Je suppose que l'erreur est embarrassingly simple, mais je ne peux pas sembler le trouver. Il est intéressant de noter que si je n'utilise pas la classe CCanMessage partout où l'erreur de compilation disparaît. L'erreur pointe sur la déclaration de la classe et non sur l'endroit où j'utilise la classe.

+0

Montrez-nous également le code actuel de votre constructeur. Le code ci-dessus se compile sous VS2008 avec un constructeur et un destructeur vierges. – Goz

+0

Comme je l'ai écrit, il compile bien si vous ne l'utilisez pas n'importe où ... – AnnaR

Répondre

1

je présume votre problème est avec cette partie de CObject (afx.h):

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

Essayez de fournir des implémentations pour le constructeur de copie et opérateur d'affectation pour votre CCanMessage.

+0

Je viens de le découvrir par moi-même! Merci d'avoir pris votre temps. – AnnaR

Questions connexes