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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не ловится exception в try catch, exception try catch 
V
    Опции темы
InvalidProperty
Дата 18.6.2009, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



уже часа 2 ломаю голову над проблемой.

Есть код:

Код

class MyException;
...

class A
{
 public:
  virtual void Method() {}
}

class B : public A
{
 public:
  void Method()
   { throw MyException(); }
}

....
int main()
{
 try
 {
  A b = new B;
  b->Method();
 }
 catch(MyException &ex)
 {
  printf("asdf");
 }
 catch(...)
 {
  printf("fuck");
 }
}


в котором MyException не ловится, а ловится ... . причем если выбросить MyException, скажем, в блоке try на первом уровне, то поймается замечательно. В чем может быть проблема???  smile 

ЗЫ компилятор - MS VS C++ 6.0

Добавлено через 13 минут и 14 секунд
только что попробовал изменить код на
Код

class A
{
 public:
  void Method() { throw MyException(); }
}
class B : public A
{
 public:
  void Method()
   { throw MyException(); }
}


т.е. чтобы метод класса B не вызывался, а MyException выбрасывался в родительском классе. Так все прекрасно работает. Что за фигня может быть с наследованием и виртуальными методами???


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
InvalidProperty
Дата 18.6.2009, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



блин, хрень какая-то.

Код

class MyException;
...
class A
{
 public:
  virtual void Method() {}
}
class B : public A
{
 public:
  void Method()
   { throw (int)1; }
}
....
int main()
{
 try
 {
  A b = new B;
  b->Method();
 }
 catch(MyException &ex)
 {
  printf("asdf");
 }
 catch(int i)
 {
  printf("%d", i);
 }
 catch(...)
 {
  printf("fuck");
 }
}


даже целое не ловится из дочернего класса :(


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
andrew_121
Дата 18.6.2009, 04:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



InvalidProperty, Учитывая, что компилятору лет столько же, сколько моему покойному деду, то это нормально!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
InvalidProperty
Дата 18.6.2009, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



andrew_121, и все-таки... должен же быть выход


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
andrew_121
Дата 18.6.2009, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Я не вижу ошибок. Попробуй скомпилить нормальным компилятором.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
InvalidProperty
Дата 18.6.2009, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



andrew_121, блин, и я не вижу теперь ошибок. Главная ошибка - не спал ночью. Заключалась ошибка в том, что у меня класс B выглядит примерно следующим образом:

Код

class B : public A
{
 private:
  void *c;

 public:
  void T()
  { c = malloc(123); }

  void Method()
  {
   free(c);
  }

  B() : c(NULL) {}
 ~B() { free(c); }
}

...
int main()
{
 A b = new B;

 b->T();
 b->Method();

 delete b;
}


теперь же я добавил пару проверок и все стало пучком.


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
andrew_121
Дата 18.6.2009, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(InvalidProperty @  18.6.2009,  05:55 Найти цитируемый пост)
Главная ошибка - не спал ночью.

И я не спал. Сейчас пойду.



Цитата(InvalidProperty @  18.6.2009,  05:55 Найти цитируемый пост)
теперь же я добавил пару проверок и все стало пучком. 

Решил обойтись без исключений?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
InvalidProperty
Дата 18.6.2009, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



andrew_121, не... с исключениями. Решил сначала проверять на NULL перед тем, как что-то очищать, а после очистки еще и NULL присваивать, чтобы потом все было хорошо.


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
Леопольд
Дата 18.6.2009, 12:24 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(InvalidProperty @ 18.6.2009,  06:19)
andrew_121, не... с исключениями. Решил сначала проверять на NULL перед тем, как что-то очищать, а после очистки еще и NULL присваивать, чтобы потом все было хорошо.

NULL присваивать не надо. delete должен это делаеть сам. Если используется старый компилятор, то лучше сменить. Под линух g++ (я пользуюсь Code::Blocks) под винду всё же лучше MS VS Express чем GNU компилятор. (но для учебных целей g++ лучше, потому что он более строго придерживается стандарта С++)

Считаю очень плохой практикой выделять в одной и той же программе память при помощи и malloc и new. Может привести к ошибкам, особенно если захочешь заменить char* на std::string. Между ними есть огромная разница. И вообще, malloc надо использовать только в C !
Если программируешь с исключениями (или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа. Таже, просто необходимо понимать что представляет из себя "раскрутка стека" (имеется ввиду стек программы) которая происходит при порождении исключения и прекращается при отлове блоком catch (этот же catch, может, по желаню продолжить, раскрутку при помощи пустого throw; )


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
InvalidProperty
Дата 18.6.2009, 12:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



Леопольд, дорогой товарищ!

Спасибо за ответ, я очень признателен. Дело лишь в том, что тот код, который я выложил - всего лишь болванка того, что был у меня на самом деле. Я хотел лишь передать людям смысл того, что я делаю, чтобы было понятно, как поступать дальше. Все, что ты написал, это истина, за исключением того, что я не уверен в том, что delete присваивает NULL к удаляемому параметру. Я более склонен доверять официальным источникам, где про сие чудо не сказано ни слова, да и ко всему прочему, опытным путем доказывается обратное к тому, что ты сказал по поводу delete.

Дорогой мой Леопольд, под линух я, как и ты, использую gcc, который включает в себя и С++ и много чего еще, ибо расшифровывается как GNU Compiler Collection. Code::Blocks я не использую.

Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Считаю очень плохой практикой выделять в одной и той же программе память при помощи и malloc и new. 

я так не считаю, если память выделяется для разных объектов (читай: сущностей).


Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Может привести к ошибкам, особенно если захочешь заменить char* на std::string. Между ними есть огромная разница.

сущая правда, друг мой

Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
И вообще, malloc надо использовать только в C !

убей того, кто тебе это сказал! может быть вообще функции C не использовать, такие, как memset, printf, strcpy...

Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Если программируешь с исключениями (или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа.

Это ты про чего? может я упустил кое-что в своей жизни?



Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Таже, просто необходимо понимать что представляет из себя "раскрутка стека" (имеется ввиду стек программы) которая происходит при порождении исключения и прекращается при отлове блоком catch (этот же catch, может, по желаню продолжить, раскрутку при помощи пустого throw; ) 

это точно!!! без этого нельзя пользоваться исключениями. вот только на счет скобок я хочу оговориться, что если верхнего catch не будет, то программа вылетит с ошибкой "Unhandled exception"

Еще раз благодарствую за подробный ответ smile

Это сообщение отредактировал(а) InvalidProperty - 18.6.2009, 12:47


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
mes
Дата 18.6.2009, 13:01 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Леопольд @  18.6.2009,  11:24 Найти цитируемый пост)
NULL присваивать не надо. delete должен это делаеть сам.

не должен и не делает.


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 18.6.2009, 13:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
(или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа. 

А я бы вам посоветовал прочитать что нибудь посерьезнее. Стауструп всего лишь основы.


Это сообщение отредактировал(а) azesmcar - 18.6.2009, 14:03
PM   Вверх
Леопольд
Дата 18.6.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(InvalidProperty @ 18.6.2009,  12:45)
Леопольд, дорогой товарищ!

Спасибо за ответ, я очень признателен. Дело лишь в том, что тот код, который я выложил - всего лишь болванка того, что был у меня на самом деле. Я хотел лишь передать людям смысл того, что я делаю, чтобы было понятно, как поступать дальше. Все, что ты написал, это истина, за исключением того, что я не уверен в том, что delete присваивает NULL к удаляемому параметру. Я более склонен доверять официальным источникам, где про сие чудо не сказано ни слова, да и ко всему прочему, опытным путем доказывается обратное к тому, что ты сказал по поводу delete.

Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Считаю очень плохой практикой выделять в одной и той же программе память при помощи и malloc и new. 

я так не считаю, если память выделяется для разных объектов (читай: сущностей).



Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
И вообще, malloc надо использовать только в C !

убей того, кто тебе это сказал! может быть вообще функции C не использовать, такие, как memset, printf, strcpy...

Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
Если программируешь с исключениями (или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа.

Это ты про чего? может я упустил кое-что в своей жизни?

...

Еще раз благодарствую за подробный ответ smile

Осмелюсь заметить что я комментирова код, который оказался "болванкой"

Я всё равно не буду пользоваться malloc в C++, new (nothrow) (который и присваивает 0 в случае неудачи) вполне его заменяет. Хотя, я не говорю о системах для которых критична одна инструкция. Но тамС++ как правило не нужен.

Грешен, каюсь, перепутал результат действия delete c неудачным вызовом new (nothrow)...

Как правило, есть замена функциям С. Библиотека С++ гораздо богаче. Вижу смысл использовать стандартные функции С только если нет замены в С++ или в open source библиотеках. Уж для printf и strcpy точно есть. smile

Код выглядел так как буд-то ты начал изучать С++ около года назад. Под одёжке встречают...

Про "безопасность исключений" есть раздел у Страуструпа "Язык С++. Специальное издание". Смысл в том, что стоит использовать shared_ptr и т.д. и т.п. В общем, можно писать код так, что в catch блоках будет происходить минимальная обработка, почти полностью относящаяся к исключению а не очиска памяти или состояний или...

Добавлено через 8 минут и 10 секунд
Цитата(azesmcar @ 18.6.2009,  13:53)
Цитата(Леопольд @  18.6.2009,  12:24 Найти цитируемый пост)
(или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа. 

А я бы вам посоветовал прочитать что нибудь посерьезнее. Стауструп всего лишь основы.

А поконкретнее? Что-то типа "Освои С++ за 21 день" и "С++ для чайников"?
У Страуструпа около 1000 страниц мелким шрифтом причём на шаблоны у него похоже просто не хватило места. По моему серьёзнее только стандарт языка. Но мне лень его читать.

Сейчас читаю "Шаблоны. Справочник разработчика", потом планирую Александреску "Современное проектирование на С++"

Что ещё мне надо по Вашему мнению прочитать/понять?


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
andrew_121
Дата 18.6.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
(который и присваивает 0 в случае неудачи)

Именно при неудаче!
То же само делает malloc().
Но не free(), operator delete не присваивают NULL, указателю который освободили.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 18.6.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
Что ещё мне надо по Вашему мнению прочитать/понять?

Мэтью Уилсона "Imperfect C++" smile


--------------------
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
А поконкретнее? Что-то типа "Освои С++ за 21 день" и "С++ для чайников"?

Возможно, если вы считаете эти книги достойными вашего внимания.

Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
У Страуструпа около 1000 страниц мелким шрифтом причём на шаблоны у него похоже просто не хватило места. По моему серьёзнее только стандарт языка. Но мне лень его читать.

С каких пор количество страниц и размер шрифта стали критерием качества? Могу поспорить что Дарья Донцова написала в своей жизни больше чем Страуструп. От этого ее книги не наполянются смыслом, как и не поднимается уровень книги Страуструпа. Да, эта книга расскажет вам о языке программирования С++, но это максимум чего вы можете от нее ожидать.

Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
Что ещё мне надо по Вашему мнению прочитать/понять? 

http://forum.vingrad.ru/forum/topic-255667...y1843390/0.html
вообще про безопасность исключений

Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
C++, new (nothrow) (который и присваивает 0 в случае неудачи) вполне его заменяет

1. следует избегать оператора new (nothrow)
2. в основном проверка на отказ оператора new бесполезна

PM   Вверх
Леопольд
Дата 18.6.2009, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(azesmcar @ 18.6.2009,  21:10)
Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
У Страуструпа около 1000 страниц мелким шрифтом причём на шаблоны у него похоже просто не хватило места. По моему серьёзнее только стандарт языка. Но мне лень его читать.

С каких пор количество страниц и размер шрифта стали критерием качества? Могу поспорить что Дарья Донцова написала в своей жизни больше чем Страуструп. От этого ее книги не наполянются смыслом, как и не поднимается уровень книги Страуструпа. Да, эта книга расскажет вам о языке программирования С++, но это максимум чего вы можете от нее ожидать.

Может быть не стоит сравнивать с художественной литературой? Он, что по Вашему, большую часть книги описывает окружающую его природу или постельные сцены? Причём замечу, ему очевидно пришлось ужать количество материала из-за размеров книги. Он пишет тяжело, не спорю приходится много думать.smile Кстати, я бы не сказал что Страутсруп плодовитый писатель... Это кончено ужасно, что книга о С++ максимум о чём мне расскажет так это о С++ 

Я был бы благодарен если Вы вкратце опишите что я могу найти в той или иной книге. Например: 
Страуструп "Язык С++. Спец. издание" - подробное описание синтаксиса и большей части STL.
Скот Мейерс. "55 способов улучшить ..." - 55 особенностей языка, которым следует уделить внимание.
Вандевурд "Шаблоны. Справочник разработчика" - детальное описание шаблонов и их особенностей. (читаю сейчас)

Мне кажется что я знаю немало о С++. Но я понимаю что даже если это так, я могу узнать гораздо больше. Пока что я не представляю что именно я могу узнать, потому что не знаю этого.

Добавлено @ 23:12
Цитата(azesmcar @ 18.6.2009,  21:10)
Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
C++, new (nothrow) (который и присваивает 0 в случае неудачи) вполне его заменяет

1. следует избегать оператора new (nothrow)
2. в основном проверка на отказ оператора new бесполезна

Я не использую (nothrow) по своему желанию. Если передо мной поставить выбор malloc или new(nothrow) в С++ то я выберу new, потому что она корректно работает и с классами и со встроенными типами.

Исключения весьмя полезны, в исключительных ситуациях. smile Не вижу смысла отказываться от них... Недостаток памяти, как правило, подходит под это определение.

Добавлено через 12 минут и 56 секунд
Цитата(zim22 @ 18.6.2009,  18:40)
Цитата(Леопольд @  18.6.2009,  18:24 Найти цитируемый пост)
Что ещё мне надо по Вашему мнению прочитать/понять?

Мэтью Уилсона "Imperfect C++" smile

Очень хорошо. Зачем мне его читать? Что именно я найду в этой книге?

Это сообщение отредактировал(а) Леопольд - 18.6.2009, 23:16


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Данкинг
Дата 18.6.2009, 23:27 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



 smile 
Цитата(azesmcar @  18.6.2009,  22:10 Найти цитируемый пост)
Могу поспорить что Дарья Донцова написала в своей жизни больше чем Страуструп. От этого ее книги не наполянются смыслом, как и не поднимается уровень книги Страуструпа. 

Вот не надо: книги Донцовой я в своё время читал, и могу сказать, что пишет она достаточно грамотно и интересно, другое дело, что потом она уже начала повторяться. Т.е. в общем впечатление от неё положительное. А на С++ я написал "калькулятор", понял, что программирование на этом языке вынесет остатки моего мозга, и забил на дальнейшее его изучение. Сейчас если только на Билдере иногда пишу, ибо он, в отличие от С++, язык вполне адекватный. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
andrew_121
Дата 18.6.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Данкинг, Подумал прежде чем писать? Уверен что нет! Удали текст, заплюют не отмоешься)


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
azesmcar
Дата 18.6.2009, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Может быть не стоит сравнивать с художественной литературой? Он, что по Вашему, большую часть книги описывает окружающую его природу или постельные сцены? 

Не важно с чем сравнивать, речь о том что главное не количество smile 

Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Это кончено ужасно, что книга о С++ максимум о чём мне расскажет так это о С++ 

Да, в самом деле ужасно. Вы узнаете из нее что есть определенные конструкции, а к каким проблемам могут привести некоторые из них - придется узнавать на собственном опыте.

Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Я был бы благодарен если Вы вкратце опишите что я могу найти в той или иной книге. Например: 

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

Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Мне кажется что я знаю немало о С++. Но я понимаю что даже если это так, я могу узнать гораздо больше. Пока что я не представляю что именно я могу узнать, потому что не знаю этого.

 smile


Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Исключения весьмя полезны, в исключительных ситуациях. smile Не вижу смысла отказываться от них... Недостаток памяти, как правило, подходит под это определение.

никто не говорил об отказе от исключений. Речь шла о проверка отказа в выделении памяти оператором new.

Добавлено @ 23:41
Цитата(Данкинг @  18.6.2009,  23:27 Найти цитируемый пост)
Вот не надо: книги Донцовой я в своё время читал

Сочувствую smile 
Ну, об этом можно поспорить думаю в разделе (не побоюсь этого слова) Искусство, но это всего лишь пример. Не надо так за Донцову переживать smile 
Цитата(Данкинг @  18.6.2009,  23:27 Найти цитируемый пост)
пишет она достаточно грамотно и интересно

Ну, неграмотно писать ей microsoft word не позволит, а насчет интереса - это дело вкуса.


Это сообщение отредактировал(а) azesmcar - 18.6.2009, 23:47
PM   Вверх
Леопольд
Дата 19.6.2009, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(azesmcar @ 18.6.2009,  23:36)
Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Может быть не стоит сравнивать с художественной литературой? Он, что по Вашему, большую часть книги описывает окружающую его природу или постельные сцены? 

Не важно с чем сравнивать, речь о том что главное не количество smile 

Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Это кончено ужасно, что книга о С++ максимум о чём мне расскажет так это о С++ 

Да, в самом деле ужасно. Вы узнаете из нее что есть определенные конструкции, а к каким проблемам могут привести некоторые из них - придется узнавать на собственном опыте.

Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)

Я был бы благодарен если Вы вкратце опишите что я могу найти в той или иной книге. Например:


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

Это всё потому, что у С++ очень много возможностей. В данном случае количество страниц имеет значение. Книги в 2000 страниц и больше мало кто решится читать. Я думаю, Страуструп это понимал. О проблеммах можно почитать в других книгах, если нет желания иногда танцевать с бубном.

Если Вы считаете книгу Страуструпа бесполезной, почему бы так не сказать?


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
azesmcar
Дата 19.6.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Леопольд @  19.6.2009,  00:00 Найти цитируемый пост)
Если Вы считаете книгу Страуструпа бесполезной, почему бы так не сказать? 

из этой фразы вы сделали такой вывод?
Цитата(azesmcar @  18.6.2009,  13:53 Найти цитируемый пост)
Стауструп всего лишь основы.

или из этой ссылки
http://forum.vingrad.ru/forum/topic-255667...y1843390/0.html
?
Поверьте, я не стесняюсь smile еслиб я так считал - я бы об этом заявил. Я лишь сказал что Страуструп это начало а не конец.

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 00:05
PM   Вверх
Данкинг
Дата 19.6.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



andrew_121, по поводу чего именно заплюют-то? smile Я же не делаю конкретно каких-то наездов на С++.

Цитата(azesmcar @  19.6.2009,  00:36 Найти цитируемый пост)
Ну, об этом можно поспорить думаю в разделе (не побоюсь этого слова) Искусство, но это всего лишь пример. 

Можно, только я не такой знаток её творчества, чтобы спорить по этому поводу. smile 



Это сообщение отредактировал(а) Данкинг - 19.6.2009, 00:06


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Данкинг @  19.6.2009,  00:06 Найти цитируемый пост)
Можно, только я не такой знаток её творчества, чтобы спорить по этому поводу. smile 

я тоже smile подождем знатоков smile 
PM   Вверх
andrew_121
Дата 19.6.2009, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(Данкинг @  18.6.2009,  23:27 Найти цитируемый пост)
Сейчас если только на Билдере иногда пишу, ибо он, в отличие от С++, язык вполне адекватный.




--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Данкинг
Дата 19.6.2009, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(andrew_121 @ 19.6.2009,  01:37)
Цитата(Данкинг @  18.6.2009,  23:27 Найти цитируемый пост)
Сейчас если только на Билдере иногда пишу, ибо он, в отличие от С++, язык вполне адекватный.

А... Хорошо, исправляюсь: с моей субъективной точки зрения. smile Но вообще по этому поводу уже вроде как масса холиваров была.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
andrew_121
Дата 19.6.2009, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(Данкинг @  18.6.2009,  23:27 Найти цитируемый пост)
Сейчас если только на Билдере иногда пишу, ибо он, в отличие от С++, язык вполне адекватный.

это, можно понять так, как будто билдер и С++ это разные вещи.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 19.6.2009, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Очень хорошо. Зачем мне его читать? Что именно я найду в этой книге?

не читайте. я ошибался, когда его вам рекомендовал. вы там ничего не найдёте.

Это сообщение отредактировал(а) zim22 - 19.6.2009, 08:24


--------------------
PM MAIL   Вверх
azesmcar
Дата 19.6.2009, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Данкинг @  19.6.2009,  00:42 Найти цитируемый пост)
А... Хорошо, исправляюсь: с моей субъективной точки зрения. smile Но вообще по этому поводу уже вроде как масса холиваров была. 


andrew_121 имел ввиду что Билдер - это среда разработки и компилятор, а С++ язык программирования. В Билдере вы используете язык программирования С++. Может вы считаете С++ неадекватным, это ваше право, но вы сказали что-то парадоксальное smile Т.е. С++ одновременно и адекватен, и нет smile Борланд сделал из С++ адекватный язык (интересно чем). Может вам просто VCL нравится? Ну да, мне он тоже нравился smile для того времени довольно неплохо спроектирован.

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 08:48
PM   Вверх
Данкинг
Дата 19.6.2009, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(azesmcar @  19.6.2009,  09:46 Найти цитируемый пост)
Билдер - это среда разработки и компилятор, а С++ язык программирования. 

В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. smile По крайней мере,  VS 6.0, которую я юзал.



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Данкинг @  19.6.2009,  09:35 Найти цитируемый пост)
В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. smile По крайней мере,  VS 6.0, которую я юзал.

Ну..это не адекватность языка, а адекватность библиотеки MFC (которая спроектирована "хуже некуда"). А язык С++ от этого свою адекватность не теряет. Не надо путать эти понятия, MFC библиотека и ее вполне могли написать плохо, и то что ее написали плохо на С++ никак не порочит доброе имя этого языка smile на любом языке можно плохую программу написать (более того, в основном люди так и поступают smile )

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 09:39
PM   Вверх
Леопольд
Дата 19.6.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Никак не могу понять следующую аномалию

test.h
Код

#ifndef TEST_H
#define TEST_H

#include <iostream>

static int var = 0;

void dyn_func(void);

static void sta_func(void){
    std::cout<<var<<std::endl;
}

inline void inl_func(void){
    std::cout<<var<<std::endl;
}

static inline void sta_inl_func(void){
    std::cout<<var<<std::endl;
}

#endif


test.cpp
Код

#include "test.h"

int main(int argc, char* argv[])
{
    var = 1;
    std::cout<<"var in main = "<<var<<std::endl;
    std::cout<<"var in main { sta_func } = ";
    sta_func();
    std::cout<<"var in main { inl_func } = ";
    inl_func();
    std::cout<<"var in main { sta_inl_func } = ";
    sta_inl_func();

    std::cout<<std::endl;
    dyn_func();
}


second.cpp
Код

#include "test.h"

void dyn_func(void){
    var = 2;
    std::cout<<"var in dyn_func = "<<var<<std::endl;
    std::cout<<"var in dyn_func { sta_func } = ";
    sta_func();
    std::cout<<"var in dyn_func { inl_func } = ";
    inl_func();
    std::cout<<"var in dyn_func { sta_inl_func } = ";
    sta_inl_func();
}


результат
Код

var in main = 1
var in main { sta_func } = 1
var in main { inl_func } = 1
var in main { sta_inl_func } = 1

var in dyn_func = 2
var in dyn_func { sta_func } = 2
var in dyn_func { inl_func } = 1
var in dyn_func { sta_inl_func } = 2
Press any key to continue . . .


Почему var in dyn_func { inl_func } = 1 ?
Чем отличается статическая компоновка inline функций от статической компоновки static функций? Компилятор из VS 2005, не удивлюсь если g++ покажет иной результат.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Данкинг
Дата 19.6.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(azesmcar @  19.6.2009,  10:38 Найти цитируемый пост)
никак не порочит доброе имя этого языка

Я, собственно, не являюсь столь уж яростным противником С++, я куда больше и чаще наезжаю на VBA. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Данкинг @  19.6.2009,  09:40 Найти цитируемый пост)
чаще наезжаю на VBA

давайте наезжать вместе smile 

Леопольд
а почему вы решили что эта тема самая подходящая для вашего вопроса? Знаете, если создать свою тему будет намного удобнее.
PM   Вверх
Леопольд
Дата 19.6.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Данкинг @ 19.6.2009,  09:35)
Цитата(azesmcar @  19.6.2009,  09:46 Найти цитируемый пост)
Билдер - это среда разработки и компилятор, а С++ язык программирования. 

В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. smile По крайней мере,  VS 6.0, которую я юзал.

Не надо путать мягкое с тёплым.
И что мешает использовать QT или wxWidgets? Это тоже GUI (в основном) библиотеки.

Добавлено через 1 минуту и 56 секунд
Цитата(azesmcar @ 19.6.2009,  09:46)
Цитата(Данкинг @  19.6.2009,  09:40 Найти цитируемый пост)
чаще наезжаю на VBA

давайте наезжать вместе smile 

Леопольд
а почему вы решили что эта тема самая подходящая для вашего вопроса? Знаете, если создать свою тему будет намного удобнее.

Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
azesmcar
Дата 19.6.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. smile 

Я еще во флейме читаю, можете там тоже запостить вопрос.

Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile 

Частично содержат. 

PM   Вверх
Леопольд
Дата 19.6.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(azesmcar @ 19.6.2009,  09:57)
Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile 

Частично содержат.

Раз Вы читали, то наверное, сможете частично ответить на мой вопрос smile Буду премного благодарен. Хотя, я создал отдельную тему

Добавлено @ 10:04
Цитата(zim22 @ 19.6.2009,  08:13)
Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Очень хорошо. Зачем мне его читать? Что именно я найду в этой книге?

не читайте. я ошибался, когда его вам рекомендовал. вы там ничего не найдёте.

Вы читали, мне интересно ваше субъективное мнение о книге а не то которое написанно на всех заборах.

Это сообщение отредактировал(а) Леопольд - 19.6.2009, 10:07


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
mes
Дата 19.6.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(Леопольд @  19.6.2009,  08:46 Найти цитируемый пост)
Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile

Отвечу за него : был и был разобран с разных сторон и был ответ не только на этот вопрос. smile




--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(mes @  19.6.2009,  10:27 Найти цитируемый пост)
Отвечу за него : был и был разобран с разных сторон и был ответ не только на этот вопрос. smile

 smile 
Вообще-то к этому вопросу Струструп тоже подходил. Это обычный статик, ничего удивительного тут нету. Инлайнин очень хорошо рассмотрен у Саттера в More Exceptional C++. В этих результатах ничего необычного нет, что просили - то и получили. Хотите одну переменную, используйте extern.

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 10:43
PM   Вверх
zim22
Дата 19.6.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(Леопольд @  19.6.2009,  10:02 Найти цитируемый пост)
Вы читали, мне интересно ваше субъективное мнение о книге а не то которое написанно на всех заборах.

я не читал ещё. просматривал. понравилось. там очень много умных слов и интересных примеров.
например: 
15.3. Изгиб "истины"
Булева логика основана на понятии двух состояний, 0 и 1.... Увы, даже в стандарте(С++-98: 3.9.1.6; примеч.42) отмечается, что "применение значения bool... "непредусмотренным" образом... может привести к тому, что его поведение не будет соответстововать ни значению true, ни значению false"
Код

reinterpret_cast<char&>(b) = 128;
if (b != false)
{
  printf("b != false"); // Это выводится на печать...
}
if (b != true)
{
  printf("b != true"); // и это...
}
if (b)
{
  printf("b is implictly true"); // и это.
}



--------------------
PM MAIL   Вверх
Леопольд
Дата 19.6.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это конечно интересно, но я сомневаюсь что можно встретить живой пример такого кода. Что-то более призёмлённое там есть или всё такого уровня абстрагирования от реальности?

Это сообщение отредактировал(а) Леопольд - 19.6.2009, 13:19


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 19.6.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(Леопольд @  19.6.2009,  13:16 Найти цитируемый пост)
Что-то более призёмлённое там есть

эта книга гораздо приземлённей Современного проектирования Александреску.


--------------------
PM MAIL   Вверх
Леопольд
Дата 21.6.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(zim22 @ 19.6.2009,  13:32)
Цитата(Леопольд @  19.6.2009,  13:16 Найти цитируемый пост)
Что-то более призёмлённое там есть

эта книга гораздо приземлённей Современного проектирования Александреску.

Под приземлённостью я имел ввиду что-то более реальное, а не простое. У Александреску есть Loki.
 Я имел ввиду что "Изгиб Истины" ни для чего не пригоден. Что можно с его помощью сделать? Скорее всего ничего. К тому же использование reinterpret_cast говорит о том, что проект до боли нуждается в перепроектировании, хотя его скорее всего даже не проектировали до этого.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
voby
Дата 24.6.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



что это за безобразие?  smile 
Код

 A b = new B;
 b->Method();
 delete b;

И при чём тут компилятор? Он делает всё правильно, как от него и требуют.
Виртуальные функции и работа с памятью должна делаться так:
Код

 A* b = new B;
 b->Method();
 delete b;


PM MAIL   Вверх
azesmcar
Дата 24.6.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



voby

Скорее всего вы не заметили, но проблема не в том что этот код не компилируется, а проблема была в другом. Это всего лишь код показывающий проблему и совершенно необязательно чтобы он компилировался. И всем было понятно, что там должен быть указатель. Почему-то всем кроме вас. В дополнение к этому, вопрос давно решен.
PM   Вверх
zim22
Дата 24.6.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



 smile 
Цитата(voby @  24.6.2009,  10:41 Найти цитируемый пост)
Виртуальные функции и работа с памятью должна делаться так:

так и только так. а кто будет делать по другому - накажу. 
Код

A& a = *(new B);
a.Method();
delete &a;



--------------------
PM MAIL   Вверх
azesmcar
Дата 24.6.2009, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(zim22 @  24.6.2009,  11:02 Найти цитируемый пост)
так и только так. а кто будет делать по другому - накажу. 

а мне можно безнаказанно так писать?
Код

A& t = B();
t.foo();


PM   Вверх
zim22
Дата 24.6.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



 smile 
Цитата(azesmcar @  24.6.2009,  11:07 Найти цитируемый пост)
а мне можно безнаказанно так писать?

не знаю, не знаю. надо посовещаться с voby... smile

Это сообщение отредактировал(а) zim22 - 24.6.2009, 11:08


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1806 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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