The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"при обоащении даже к пустому методу"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"при обоащении даже к пустому методу"
Сообщение от Lamr emailИскать по авторуВ закладки on 13-Янв-04, 17:08  (MSK)
созданного класса - core dumped
Если, однако, к методу не обращаться, а просто объявить объект и
завершить прогу - ошибок не получается. И компилится нормально

Никто не встречал???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "при обоащении даже к пустому методу"
Сообщение от Макс Зиналь emailИскать по авторуВ закладки on 13-Янв-04, 22:52  (MSK)
>созданного класса - core dumped
>Если, однако, к методу не обращаться, а просто объявить объект и
>завершить прогу - ошибок не получается. И компилится нормально
>
>Никто не встречал???

Пример в студию. Компилятор, ОС.
Или книжку почитай.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "при обоащении даже к пустому методу"
Сообщение от Lamr emailИскать по авторуВ закладки on 14-Янв-04, 10:31  (MSK)
Спасибо за участие

я делал так

class abc {
   int    i;

public:
       abc(int i) { this->i = i; }
       abc(void)  { abc::abc(1); }
                     ^^ думал что здесь произойдёт вызов abc(int)
                        чтобы не писать почти одинак. функ
  ...
};

не выходит. С++ компилит, не ругается, сволочь, но прога работает не корректно
Я написал почти одинаковую фунцию - некогда ебаться

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "при обоащении даже к пустому методу"
Сообщение от Xela emailИскать по авторуВ закладки on 14-Янв-04, 11:20  (MSK)
>       abc(void)  { abc::abc(1); }
Чушь!
abc(void)  { this->abc(1); }
or
abc(void)  { abc(1); }
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "при обоащении даже к пустому методу"
Сообщение от Lamr emailИскать по авторуВ закладки on 14-Янв-04, 12:31  (MSK)
>>       abc(void)  { abc::abc(1); }
>Чушь!
>abc(void)  { this->abc(1); }
                    ^^^^^^
error: calling type `abc' like a method

>or
>abc(void)  { abc(1); }
                ^^^^^^^
так компилиться без ошибок, но 1*1 в результате выдает -1495740736

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "при обоащении даже к пустому методу"
Сообщение от asso Искать по авторуВ закладки on 14-Янв-04, 13:30  (MSK)
>       abc(void)  { abc::abc(1); }

Никогда так не делай.  Из конструктора нельзя вызывать другой конструктор этого класса.  Читай об этом тут:

http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.3

По-русски, но не так подробно можно прочитать здесь:

http://quirks.chat.ru/cpp/faq/#s10p3

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. " Читай об этом тут: "
Сообщение от Lamr emailИскать по авторуВ закладки on 14-Янв-04, 13:42  (MSK)

Спасибо.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "при обоащении даже к пустому методу"
Сообщение от Макс Зиналь emailИскать по авторуВ закладки on 14-Янв-04, 23:55  (MSK)
>class abc {
>   int    i;
>
>public:
>       abc(int i) { this->i = i; }
>       abc(void)  { abc::abc(1); }

В последней строчке ошибка, ибо явный вызов конструктора в C++ невозможен.
Дабы не писать "одинаковые функции", есть масса приёмов.
(A) соорудить приватную функцию init() с нужными параметрыми и вызывать
её из всех конструктуров.
(Б) в данном конкретном случае всё ещё проще
   abc(int ii=1) { i = ii; }
И проблемная строчка вообще не нужна!

>не выходит. С++ компилит, не ругается, сволочь,
>но прога работает некорректно

Должен ругаться. Меняй компилятор, а то так и здоровье потерять можно.
Будет как у Данилы-мастера: "Что, не выходит у тебя каменная чаша?
А слабительное пил?"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "при обоащении даже к пустому методу"
Сообщение от Lamr emailИскать по авторуВ закладки on 15-Янв-04, 10:17  (MSK)
на вопрос треда давно ответили
>Меняй компилятор, а то так и здоровье п

компилятор gcc-2.95.3
ОС FreeBSD
И до привантной init я допёр самостоятельно - читайте тред перед тем, как отвечать

Всем спасибо за участие
Удачи!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру