![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
InvalidProperty |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: нет Всего: 9 |
уже часа 2 ломаю голову над проблемой.
Есть код:
в котором MyException не ловится, а ловится ... . причем если выбросить MyException, скажем, в блоке try на первом уровне, то поймается замечательно. В чем может быть проблема??? ![]() ЗЫ компилятор - MS VS C++ 6.0 Добавлено через 13 минут и 14 секунд только что попробовал изменить код на
т.е. чтобы метод класса 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 |
||||
|
|||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: нет Всего: 9 |
блин, хрень какая-то.
даже целое не ловится из дочернего класса :( -------------------- 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 |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
InvalidProperty, Учитывая, что компилятору лет столько же, сколько моему покойному деду, то это нормально!
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Я не вижу ошибок. Попробуй скомпилить нормальным компилятором.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: нет Всего: 9 |
andrew_121, блин, и я не вижу теперь ошибок. Главная ошибка - не спал ночью. Заключалась ошибка в том, что у меня класс 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 |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
И я не спал. Сейчас пойду. Решил обойтись без исключений? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
InvalidProperty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
NULL присваивать не надо. delete должен это делаеть сам. Если используется старый компилятор, то лучше сменить. Под линух g++ (я пользуюсь Code::Blocks) под винду всё же лучше MS VS Express чем GNU компилятор. (но для учебных целей g++ лучше, потому что он более строго придерживается стандарта С++) Считаю очень плохой практикой выделять в одной и той же программе память при помощи и malloc и new. Может привести к ошибкам, особенно если захочешь заменить char* на std::string. Между ними есть огромная разница. И вообще, malloc надо использовать только в C ! Если программируешь с исключениями (или хотя бы пользуешься new без (nothrow)) то советую почитать про безопастность исключений. В первую очередь у Страуструпа. Таже, просто необходимо понимать что представляет из себя "раскрутка стека" (имеется ввиду стек программы) которая происходит при порождении исключения и прекращается при отлове блоком catch (этот же catch, может, по желаню продолжить, раскрутку при помощи пустого throw; ) -------------------- вопросов больше чем ответов |
|||
|
||||
InvalidProperty |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 356 Регистрация: 31.10.2007 Где: Россия, Казань Репутация: нет Всего: 9 |
Леопольд, дорогой товарищ!
Спасибо за ответ, я очень признателен. Дело лишь в том, что тот код, который я выложил - всего лишь болванка того, что был у меня на самом деле. Я хотел лишь передать людям смысл того, что я делаю, чтобы было понятно, как поступать дальше. Все, что ты написал, это истина, за исключением того, что я не уверен в том, что delete присваивает NULL к удаляемому параметру. Я более склонен доверять официальным источникам, где про сие чудо не сказано ни слова, да и ко всему прочему, опытным путем доказывается обратное к тому, что ты сказал по поводу delete. Дорогой мой Леопольд, под линух я, как и ты, использую gcc, который включает в себя и С++ и много чего еще, ибо расшифровывается как GNU Compiler Collection. Code::Blocks я не использую.
я так не считаю, если память выделяется для разных объектов (читай: сущностей).
сущая правда, друг мой убей того, кто тебе это сказал! может быть вообще функции C не использовать, такие, как memset, printf, strcpy...
Это ты про чего? может я упустил кое-что в своей жизни? это точно!!! без этого нельзя пользоваться исключениями. вот только на счет скобок я хочу оговориться, что если верхнего catch не будет, то программа вылетит с ошибкой "Unhandled exception" Еще раз благодарствую за подробный ответ ![]() Это сообщение отредактировал(а) 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 |
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не должен и не делает. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
А я бы вам посоветовал прочитать что нибудь посерьезнее. Стауструп всего лишь основы. Это сообщение отредактировал(а) azesmcar - 18.6.2009, 14:03 |
|||
|
||||
Леопольд |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Осмелюсь заметить что я комментирова код, который оказался "болванкой" Я всё равно не буду пользоваться malloc в C++, new (nothrow) (который и присваивает 0 в случае неудачи) вполне его заменяет. Хотя, я не говорю о системах для которых критична одна инструкция. Но тамС++ как правило не нужен. Грешен, каюсь, перепутал результат действия delete c неудачным вызовом new (nothrow)... Как правило, есть замена функциям С. Библиотека С++ гораздо богаче. Вижу смысл использовать стандартные функции С только если нет замены в С++ или в open source библиотеках. Уж для printf и strcpy точно есть. ![]() Код выглядел так как буд-то ты начал изучать С++ около года назад. Под одёжке встречают... Про "безопасность исключений" есть раздел у Страуструпа "Язык С++. Специальное издание". Смысл в том, что стоит использовать shared_ptr и т.д. и т.п. В общем, можно писать код так, что в catch блоках будет происходить минимальная обработка, почти полностью относящаяся к исключению а не очиска памяти или состояний или... Добавлено через 8 минут и 10 секунд А поконкретнее? Что-то типа "Освои С++ за 21 день" и "С++ для чайников"? У Страуструпа около 1000 страниц мелким шрифтом причём на шаблоны у него похоже просто не хватило места. По моему серьёзнее только стандарт языка. Но мне лень его читать. Сейчас читаю "Шаблоны. Справочник разработчика", потом планирую Александреску "Современное проектирование на С++" Что ещё мне надо по Вашему мнению прочитать/понять? -------------------- вопросов больше чем ответов |
||||||
|
|||||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Именно при неудаче! То же само делает malloc(). Но не free(), operator delete не присваивают NULL, указателю который освободили. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
Мэтью Уилсона "Imperfect C++" ![]() |
|||
|
||||
azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Возможно, если вы считаете эти книги достойными вашего внимания.
С каких пор количество страниц и размер шрифта стали критерием качества? Могу поспорить что Дарья Донцова написала в своей жизни больше чем Страуструп. От этого ее книги не наполянются смыслом, как и не поднимается уровень книги Страуструпа. Да, эта книга расскажет вам о языке программирования С++, но это максимум чего вы можете от нее ожидать. http://forum.vingrad.ru/forum/topic-255667...y1843390/0.html вообще про безопасность исключений
1. следует избегать оператора new (nothrow) 2. в основном проверка на отказ оператора new бесполезна |
||||||
|
|||||||
Леопольд |
|
||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Может быть не стоит сравнивать с художественной литературой? Он, что по Вашему, большую часть книги описывает окружающую его природу или постельные сцены? Причём замечу, ему очевидно пришлось ужать количество материала из-за размеров книги. Он пишет тяжело, не спорю приходится много думать. ![]() Я был бы благодарен если Вы вкратце опишите что я могу найти в той или иной книге. Например: Страуструп "Язык С++. Спец. издание" - подробное описание синтаксиса и большей части STL. Скот Мейерс. "55 способов улучшить ..." - 55 особенностей языка, которым следует уделить внимание. Вандевурд "Шаблоны. Справочник разработчика" - детальное описание шаблонов и их особенностей. (читаю сейчас) Мне кажется что я знаю немало о С++. Но я понимаю что даже если это так, я могу узнать гораздо больше. Пока что я не представляю что именно я могу узнать, потому что не знаю этого. Добавлено @ 23:12
Я не использую (nothrow) по своему желанию. Если передо мной поставить выбор malloc или new(nothrow) в С++ то я выберу new, потому что она корректно работает и с классами и со встроенными типами. Исключения весьмя полезны, в исключительных ситуациях. ![]() Добавлено через 12 минут и 56 секунд
Очень хорошо. Зачем мне его читать? Что именно я найду в этой книге? Это сообщение отредактировал(а) Леопольд - 18.6.2009, 23:16 -------------------- вопросов больше чем ответов |
||||||||||
|
|||||||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
![]()
Вот не надо: книги Донцовой я в своё время читал, и могу сказать, что пишет она достаточно грамотно и интересно, другое дело, что потом она уже начала повторяться. Т.е. в общем впечатление от неё положительное. А на С++ я написал "калькулятор", понял, что программирование на этом языке вынесет остатки моего мозга, и забил на дальнейшее его изучение. Сейчас если только на Билдере иногда пишу, ибо он, в отличие от С++, язык вполне адекватный. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
Данкинг, Подумал прежде чем писать? Уверен что нет! Удали текст, заплюют не отмоешься)
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
azesmcar |
|
||||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Не важно с чем сравнивать, речь о том что главное не количество ![]()
Да, в самом деле ужасно. Вы узнаете из нее что есть определенные конструкции, а к каким проблемам могут привести некоторые из них - придется узнавать на собственном опыте.
Описывать долго, в основном советы, правила, заблуждения, стиль...
![]()
никто не говорил об отказе от исключений. Речь шла о проверка отказа в выделении памяти оператором new. Добавлено @ 23:41 Сочувствую ![]() Ну, об этом можно поспорить думаю в разделе (не побоюсь этого слова) Искусство, но это всего лишь пример. Не надо так за Донцову переживать ![]() Ну, неграмотно писать ей microsoft word не позволит, а насчет интереса - это дело вкуса. Это сообщение отредактировал(а) azesmcar - 18.6.2009, 23:47 |
||||||||||
|
|||||||||||
Леопольд |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Это всё потому, что у С++ очень много возможностей. В данном случае количество страниц имеет значение. Книги в 2000 страниц и больше мало кто решится читать. Я думаю, Страуструп это понимал. О проблеммах можно почитать в других книгах, если нет желания иногда танцевать с бубном. Если Вы считаете книгу Страуструпа бесполезной, почему бы так не сказать? -------------------- вопросов больше чем ответов |
||||||||
|
|||||||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
из этой фразы вы сделали такой вывод? или из этой ссылки http://forum.vingrad.ru/forum/topic-255667...y1843390/0.html ? Поверьте, я не стесняюсь ![]() Это сообщение отредактировал(а) azesmcar - 19.6.2009, 00:05 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
andrew_121, по поводу чего именно заплюют-то?
![]()
Можно, только я не такой знаток её творчества, чтобы спорить по этому поводу. ![]() Это сообщение отредактировал(а) Данкинг - 19.6.2009, 00:06 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
А... Хорошо, исправляюсь: с моей субъективной точки зрения. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
это, можно понять так, как будто билдер и С++ это разные вещи. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
не читайте. я ошибался, когда его вам рекомендовал. вы там ничего не найдёте. Это сообщение отредактировал(а) zim22 - 19.6.2009, 08:24 |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
andrew_121 имел ввиду что Билдер - это среда разработки и компилятор, а С++ язык программирования. В Билдере вы используете язык программирования С++. Может вы считаете С++ неадекватным, это ваше право, но вы сказали что-то парадоксальное ![]() ![]() ![]() Это сообщение отредактировал(а) azesmcar - 19.6.2009, 08:48 |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Ну..это не адекватность языка, а адекватность библиотеки MFC (которая спроектирована "хуже некуда"). А язык С++ от этого свою адекватность не теряет. Не надо путать эти понятия, MFC библиотека и ее вполне могли написать плохо, и то что ее написали плохо на С++ никак не порочит доброе имя этого языка ![]() ![]() Это сообщение отредактировал(а) azesmcar - 19.6.2009, 09:39 |
|||
|
||||
Леопольд |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Никак не могу понять следующую аномалию
test.h
test.cpp
second.cpp
результат
Почему var in dyn_func { inl_func } = 1 ? Чем отличается статическая компоновка inline функций от статической компоновки static функций? Компилятор из VS 2005, не удивлюсь если g++ покажет иной результат. -------------------- вопросов больше чем ответов |
||||||||
|
|||||||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Я, собственно, не являюсь столь уж яростным противником С++, я куда больше и чаще наезжаю на VBA. ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
Леопольд |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Не надо путать мягкое с тёплым. И что мешает использовать QT или wxWidgets? Это тоже GUI (в основном) библиотеки. Добавлено через 1 минуту и 56 секунд
Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. Вот мне интересно, был ли в тех книгах ответ на мой вопрос? ![]() -------------------- вопросов больше чем ответов |
||||||
|
|||||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Я еще во флейме читаю, можете там тоже запостить вопрос.
Частично содержат. |
||||
|
|||||
Леопольд |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Раз Вы читали, то наверное, сможете частично ответить на мой вопрос ![]() Добавлено @ 10:04
Вы читали, мне интересно ваше субъективное мнение о книге а не то которое написанно на всех заборах. Это сообщение отредактировал(а) Леопольд - 19.6.2009, 10:07 -------------------- вопросов больше чем ответов |
||||||||
|
|||||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Отвечу за него : был и был разобран с разных сторон и был ответ не только на этот вопрос. ![]() |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
![]() Вообще-то к этому вопросу Струструп тоже подходил. Это обычный статик, ничего удивительного тут нету. Инлайнин очень хорошо рассмотрен у Саттера в More Exceptional C++. В этих результатах ничего необычного нет, что просили - то и получили. Хотите одну переменную, используйте extern. Это сообщение отредактировал(а) azesmcar - 19.6.2009, 10:43 |
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
я не читал ещё. просматривал. понравилось. там очень много умных слов и интересных примеров. например: 15.3. Изгиб "истины" Булева логика основана на понятии двух состояний, 0 и 1.... Увы, даже в стандарте(С++-98: 3.9.1.6; примеч.42) отмечается, что "применение значения bool... "непредусмотренным" образом... может привести к тому, что его поведение не будет соответстововать ни значению true, ни значению false"
|
||||
|
|||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Это конечно интересно, но я сомневаюсь что можно встретить живой пример такого кода. Что-то более призёмлённое там есть или всё такого уровня абстрагирования от реальности?
Это сообщение отредактировал(а) Леопольд - 19.6.2009, 13:19 -------------------- вопросов больше чем ответов |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
эта книга гораздо приземлённей Современного проектирования Александреску. |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Под приземлённостью я имел ввиду что-то более реальное, а не простое. У Александреску есть Loki. Я имел ввиду что "Изгиб Истины" ни для чего не пригоден. Что можно с его помощью сделать? Скорее всего ничего. К тому же использование reinterpret_cast говорит о том, что проект до боли нуждается в перепроектировании, хотя его скорее всего даже не проектировали до этого. -------------------- вопросов больше чем ответов |
|||
|
||||
voby |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.6.2009 Репутация: нет Всего: нет |
что это за безобразие?
![]()
И при чём тут компилятор? Он делает всё правильно, как от него и требуют. Виртуальные функции и работа с памятью должна делаться так:
|
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
voby
Скорее всего вы не заметили, но проблема не в том что этот код не компилируется, а проблема была в другом. Это всего лишь код показывающий проблему и совершенно необязательно чтобы он компилировался. И всем было понятно, что там должен быть указатель. Почему-то всем кроме вас. В дополнение к этому, вопрос давно решен. |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
![]() так и только так. а кто будет делать по другому - накажу.
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
![]() не знаю, не знаю. надо посовещаться с voby... ![]() Это сообщение отредактировал(а) zim22 - 24.6.2009, 11:08 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |