Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переопределение конструктора формы, С++ Builder 
:(
    Опции темы
gray_k
Дата 19.2.2004, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Такой глюк.
Создаю в проекте форму, переопределяю её конструктор, например
-объявление
Код
__fastcall TForm2(TComponent* Owner, int a);

-реализация
Код
__fastcall TForm2::TForm2(TComponent* Owner, int a)
 : TForm(Owner)
{}

затем вызываю его
Код
 TForm2 *fm = new TForm2(this,1);

Компилится всё без проблем, но когда пытыюсь выполнить, то на строке с вызовом конструктора вываливается "Stack overflow"
confused.gif
Абсолютно непонятно, это у меня билдер проглючил, или для vcl не работает переопределение конструкторов?

Это сообщение отредактировал(а) gray_k - 19.2.2004, 14:34


--------------------
С уважением.
Gray.
PM MAIL   Вверх
Vyacheslav
Дата 19.2.2004, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Так делать НИЗЗЯ smile.gif
Дело в том, что конструктор с такими параметрами в таком порядке служит для служебных целей и его просто так переопределять нельзя. Если Вам очень хочется иметь конструктор с такими параметрами, то по крайней мере поменяйте параметры местами

__fastcall TForm2::TForm2(int a, TComponent* Owner)
: TForm(Owner)
{}


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 19.2.2004, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

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



Вот кстати иллюстрация к выше сказанному
Код

#pragma option push -w-inl
/* TCustomForm.CreateNew */ inline __fastcall virtual TForm(Classes::TComponent* AOwner, int Dummy) : TCustomForm(AOwner, Dummy) { }
#pragma option pop



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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