Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наследование стандартных классов

284
18 июня 2005 года
michael_is_98
587 / / 25.02.2005
У меня вопрос: пишу собственные классы в проекте, но приходится иметь дело с конструкциями, которые уже давно разработаны - классом CFile и его потомками, CException (это из MFC). В связи с этим возник простой вопрос: что лучше использовать для этих целей: MFC, JAVA, NET (это вопрос общего плана), и второй вопрос: если использовать MFC, можно ли создавать свои собственные классы на основе существующих или есть какие-либо ограничения.
3
19 июня 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
У меня вопрос: пишу собственные классы в проекте,


Похвально, но начинай привыкать, собственно это и называется программированием.

Цитата:
Originally posted by michael_is_98
но приходится иметь дело с конструкциями, которые уже давно разработаны - классом CFile и его потомками, CException (это из MFC). В связи с этим возник простой вопрос: что лучше использовать для этих целей: MFC, JAVA, NET (это вопрос общего плана),


Для каких целей?
И чо ты хотел спровить смешивая три совершенно несвязанные вещи:
MFC - библиотеку классов на С++,
Java - язык программирования,
NET - платформа.

Цитата:
Originally posted by michael_is_98
и второй вопрос: если использовать MFC, можно ли создавать свои собственные классы на основе существующих или есть какие-либо ограничения.


Создавать можно, ограничения есть, например, нелбзя использовать множемтвенное наследование.

284
19 июня 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Похвально, но начинай привыкать, собственно это и называется программированием.


Для каких целей?
И чо ты хотел спровить смешивая три совершенно несвязанные вещи:
MFC - библиотеку классов на С++,
Java - язык программирования,
NET - платформа.


Создавать можно, ограничения есть, например, нелбзя использовать множемтвенное наследование.


Хорошо, какую библиотеку лучше использовать, создавая обычную Windows-программу на языке C++. Есть ли альтернатива MFC?

3
19 июня 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by michael_is_98
Хорошо, какую библиотеку лучше использовать, создавая обычную Windows-программу на языке C++. Есть ли альтернатива MFC?



Таких альтернатив множество.
Я использую WTL.
А в чем твоя проблема при использовании MFC?

284
19 июня 2005 года
michael_is_98
587 / / 25.02.2005
Цитата:
Originally posted by Green
Таких альтернатив множество.
Я использую WTL.
А в чем твоя проблема при использовании MFC?


Я пытаюсь создать класс исключения, который бы затем можно было бы затем обработать в блоке try-catch.
Класс должен хранить текстовую строку - сообщение об ошибке, и с помощью одного метода возвращать эту строку (чтобы затем, например, вывести ее на экран).
Такой класс я не нашел (ни в MFC, ни в библиотеки классов, которая есть в VC).
В MFC я нашел базовый класс CException, на основе которого создал свой класс CExceptionMsg.

Код:
class CExceptionMsg: public CException
{
    DECLARE_DYNAMIC(CExceptionMsg)

private:
    char* fmessage;

public:
    CExceptionMsg(const char*mes);
    CExceptionMsg(const char*mes, ...);


    virtual ~CExceptionMsg();
}

CExceptionMsg::CExceptionMsg(const char*mes)
{
    fmessage=(char*)malloc(strlen(mes)+1);
    strcpy(fmessage, mes);
}

CExceptionMsg::CExceptionMsg(const char*mes,...)
{
    char buffer[100];

    va_list marker;
    va_start(marker,mes);
    vsprintf(&buffer[0],mes, marker);
    va_end(marker);

    fmessage=(char*)malloc(strlen(buffer)+1);
    strcpy(fmessage, buffer);
}

CExceptionMsg::~CExceptionMsg()
{
    free(fmessage);
}

Но при линковке появляется сообщение
unresolved external symbol "public: virtual struct CRuntimeClass * __thiscall CExceptionMsg::GetRuntimeClass(void)const "
Подозреваю, я не указал информацию о своем классе, но как это сделать? Ведь классы MFC можно использовать как базовые? Или я не прав?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог