Как вы наследуете от CObject и успешно компилируете? - PullRequest
0 голосов
/ 16 февраля 2010

Я пытаюсь унаследовать 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, ошибка компиляции исчезнет. Ошибка указывает на объявление класса, а не на любое место, где я использую класс.

1 Ответ

1 голос
/ 16 февраля 2010

Полагаю, ваша проблема связана с этой частью из CObject (afx.h):

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

Попробуйте предоставить реализации для конструктора копирования и оператора присваивания для вашего CCanMessage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...