Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Диалог 
:(
    Опции темы
Madrid
Дата 27.5.2006, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Люди помогите разобраться с таким вопросом.Есть клас CDlg, производный от CDialog.Есть диалоговое окно с ID. 
В классе CDlg создаю конструктор CDlg(UINT nIDTemplate),телом которого является конструктор базового класса (CDialog(UINT nIDTemplate, CWnd* pParentWnd)) 

"Dlg.h"
Код

class CDlg : 
   public CDialog 

public: 
   CDlg(UINT nIDTemplate); 
   CDlg(void); 
   ~CDlg(void); 
};


пишу реализацию моего конструктора:

"Dlg.cpp"

Код

#include "Dlg.h" 

CDlg::CDlg(void) 



CDlg::~CDlg(void) 


CDlg::CDlg(UINT nIDTemplate) 

   CDialog(nIDTemplate);//ОШИБКА 
}


Возникает ошибка (в строке с коментарием):
Код

error C2082: redefinition of formal parameter 'nIDTemplate'


Теперь пишу реализацию конструктора так:

Код

#include "Dlg.h" 

CDlg::CDlg(void) 



CDlg::~CDlg(void) 


CDlg::CDlg(UINT nIDTemplate) : CDialog(nIDTemplate) 

}


Все работает!Почему первый вариант не работает?В чём дело?Чем второй вариант отличается от второго? smile  
PM MAIL   Вверх
DeadSoul
Дата 27.5.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Цитата(Madrid @  27.5.2006,  02:08 Найти цитируемый пост)
  CDialog(nIDTemplate);//ОШИБКА 

Так инициализировать родительский класс нельзя 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Madrid
Дата 27.5.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Код

Так инициализировать родительский класс нельзя 

А как же тогда вызывать конструктор базового класса? 
PM MAIL   Вверх
DeadSoul
Дата 27.5.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Ты сам все  написал:
Код

// Неверно
Derived::Derived( SomeParam param )
{
  Base( param );
}

// Верно
Derived::Derived( SomeParam param ):Base( param )

{
 }
 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Madrid
Дата 27.5.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



А это единственный вариант? 
PM MAIL   Вверх
DeadSoul
Дата 27.5.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Да. 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.