Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > MFC: изменение стандартного конструктора


Автор: Madest 28.11.2003, 15:41
Нужно переопределить стандартный конструктор для немодального диалога, чтобы он имел доступ к данным документа.
Было так:
CTools(CWnd* p=NULL); // standard constructor

CTools::CTools(CWnd* p/*=NULL*/):CDialog(CTools::IDD, p)

Сделал так:
CTools(CMyDoc* p=NULL);

CTools::CTools(CMyDoc* p/*=NULL*/):CDialog(CTools::IDD, p)

Итог - 10 ошибок.
: error C2629: unexpected 'class CTools (' и ей подобные.
Чего не так?


Автор: DENNN 28.11.2003, 15:53
Цитата

CTools(CMyDoc* p,CWnd* p=NULL);
CTools::CTools(CMyDoc* p, CWnd* p/*=NULL*/):CDialog(CTools::IDD, p)
{

}

Автор: Madest 1.12.2003, 10:33
Если сделать так, то ругается на несоответствие конструктора документа по умолчанию
CTools(CWnd* p1,CDocument* p2);
CTools::CTools(CWnd* p1=NULL,CDocument* p2=NULL):CDialog(CTools::IDD, p1)

CMyDoc::CMyDoc()
{ //error C2512: 'CTools' : no appropriate default constructor available
}

Причем принимает только класс CDocument, CMyDoc принимать не хочет.

Автор: Madest 1.12.2003, 12:51
Спасибо, сделал с CMyDoc:
Перед объявлением класса CTools не хватало строки
class CMyDoc;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)