![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
xvr |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Тема навеяна квестом, проведенным 'Гуру от стандарта С++' Сыроежкой в теме 'микс' (кто не видел - там было 2 вопроса, посвященные тому, что char бывает знаковым и тонкостям автоматического приведения типов и integer promotion).
Квест не получил широкого отклика (видимо в силу банальности вопросов, а не их сверх сложности, как считал автор). Но заставил меня задуматься - а может мы чего то не знаем о стандарте С++, может Сыроежка в этом действительно разбирается лучше? ![]() Тогда я и решил сделать то, чего никогда не делал (по крайней мере тут) - провести свой квест. Вопросы предназначаются в первую очередь Сыроежке, попрошу остальных воздержаться от ответов, пока мы не получим кладезь премудрости от Сыроежки. Если вам очень приспичило - пишите мне в PM, я потом опубликую ![]() Итак: 1) Как поймать исключение от конструктора A в конструкторе B?
2) Чего не хватает тут (и почему)?
3) Какие ошибки есть тут?
4) Что делается тут?
5) Чем отличаются *1 и *2?
6) [На закуску ![]() Думаю достаточно |
||||||||||
|
|||||||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
Во задело мужика
![]() -------------------- Обижено школьников: 8 |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 5 Всего: 160 |
Так, я что-то пропустил.
![]() -------------------- |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
xvr, а что так просто? Я думал тут будет что-то ужасно сложное...
![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
xvr, интересует ответ на вопрос №1. Моя гипотеза - никак не поймать ?
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
Skevalt |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 30.11.2006 Репутация: нет Всего: 3 |
xvr, было бы очень здорово, если вы озвучите в конце концов правильные ответы. Если испытуемый не появится.
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
ему кто нибудь сообщил что его здесь ждут? ) гугл в помошь, ведь с++ не вчера придумали, такие вопросы уже задавались. xvr, я так понимаю в одном вопросе должна быть загвоздка? а то слишком просто все выглядит. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Да, дважды Ну, можно и так сказать ![]() Я не ставил цель всех всех запутать. Квест действительно простой |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
ИМХО не совсем корректный вопрос, потому что ответ "Описывается класс A, определяется оператор<< и т.п." можно назвать "зачётным". Может стОит переформулировать типа "откомпилируется или нет, что выведется, etc." ? Подчёркиваю - IMHO может он больше шутеры любит ![]() -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Сыроежка |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: 1 Всего: 1 |
Вы можете заключить тело конструктора производного класса вместе со списком инициализации в блок try/catch.
Вы можете заключить тело конструктора производного класса вместе со списком инициализации в блок try/catch. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
два раза и медленно?
![]() -------------------- Обижено школьников: 8 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
А сколько будете ждать?
А то если очень долго, то с помощью интернета и более опытных "щнакомых" ![]() может ответить. Почти на все вопросы можно найти ответы в сети. Специально сейчас поискал. Пример |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
прошу прощения у всех форумчан.... но походу типок неадекват... снова прошу прощения ![]() Добавлено через 1 минуту и 52 секунды создание предка с помощью оператора new? ![]() |
|||
|
||||
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
||||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
> чем try/catch не подходит?
Присоединяюсь к вопросу -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
просто заключить список инициализации в try-catch ![]() |
|||
|
||||
Hagrael |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 26.6.2011 Репутация: нет Всего: нет |
Ну и навалился на человека... В чем цель? Доказать, что ты прав? Мда, и это называется "Взрослый человек"...
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Нет, это в доказательствах не нуждается. Хотелось доказать (Сыроежке), что кроме его мнения, бывают и другие. И что его мнение не может являться неопровержимой истинной, только потому, что оно его. И что с ним не соглашаются не по дремучему невежеству (как он считает, о чем он неоднократно писал), а потому что он банально не прав Посмотрите исходную тему, вы все поймете Добавлено через 3 минуты и 10 секунд То, что он неадекват и так видно (иначе бы этого опроса не было). А по поводу блока try catch он все же прав. Однако по формулировке ответа не понятно, как и куда он его собрался вставлять, поэтому правильным ответом я это принять пока не могу ![]() |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Hagrael, Да дело даже не в том что объект мало что понимает в С/С++. Дело в том что он хамло! Вести спор нормально не может. типичные фразы. "Я вас посадил в лужу." и прочее. Причем искренне уверен в своей непогрешимости. Чем чайник отличается от ламера? Там что Ламер уверен в своей непогрешимости и других считает ниже себя. Это Ламо 0х64% ( цифровую нотацию честно скопипастил у borisbn) |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Итак, сейчас 12:01, остальных ответов от Сыроежки мы так и не дождались. Мораторий на ответы снимаю
![]() Предварительные результаты: Сыроежка - ответил на 0.5 вопроса через полтора дня ![]() Azesmcar - ответил через 15 минут после начала квеста (по ПМ), практически на все вопросы. Была ошибка (исправленная во 2й итерации) в ответе на 6й вопрос. Так же не был замечен подвох в п3 (что правда не отразилось на правильности ответа) |
|||
|
||||
asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
xvr, в публику пожалуйста, думаю все уже видели вопросы и для себя знают ответы, но хотелось бы увидеть правильные, можно Azesmcar'а если он не против.
|
|||
|
||||
Сыроежка |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: 1 Всего: 1 |
Что вам здесь не понятно?! После закрывающийся скобки со списком параметров конструктора ставите try затем список инициализации, затем тело конструктора, а после него catch. Если вас интересует пример, (а , как я уже кспел убедиться, стандарт вы не читаете, а читаете только художественную литературу о С++), то закляните во второй том книги Эккеля "Философия С++" Я вообще не понимаю, что вы от меня хотите?! Например, что вы хотите от меня услышать в ответ на этот ваш пример?!
Тут ничего не деалется, кроме ошибки редактирования, так как у вас нет определения оператора <<. И что я должен был сказать еще?! Я вообзе не понимаю, что вы хотели показать этим своим кодом. Это сообщение отредактировал(а) Сыроежка - 10.7.2011, 15:52 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А что, тебе лень было написать пару строчек примера? Синтаксис не такой уж и сложный, хотя и не особо очевидный. |
|||
|
||||
xvr |
|
||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Угу, ответ засчитан
Ответ хочу услышать
По моему получилось достаточно убедительно ![]() Это сообщение отредактировал(а) xvr - 10.7.2011, 19:09 |
||||||||||
|
|||||||||||
xvr |
|
||||||||||||||||||||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Сыроешка наконец появился и со свойственным ему апломбом снова полез обвинять других, не ответив на 5 вопросов из 6ти. Мне остается только восхищаться невообразимой наглостью этого перца
![]() Обещанные ответы:
Необходимость (да и само появление typename) обусловлено особенностью грамматики С, а именно тем, что она очень неоднозначная в местах, которые касаются использования типов. Поэтому, еще со времен самого первого С компилятора применяется хитрость в лексическом анализаторе - идентификаторы, обозначающие типы, трактуются на выходе из лексического анализатора именно как типы, а не как просто идентификаторы. Для этого лексический анализатор тесно взаимодействует с синтаксическим парсером и таблицей типов. Для шаблонов все становится совсем непросто, т.к. на момент компиляции собственно шаблона абсолютно неизвестно, что является типом, а что нет. Можно либо отложить компиляцию тела шаблона до момента его использования (что и делалось сначала). Но это приводит к тому, что масса ошибок в синтаксисе шаблона проявлялась только в момент его использования. Кроме того, при таком подходе было затруднительно реализовать фичу с экспортом шаблонов. Что бы можно было откомпилировать шаблон сразу и импортировать его, и было введено ключевое слово typename, которое используется в грамматике языка для отделения типов от идентификаторов.
Ошибки те же, что и в предыдущем случае - шаблоны требуют указать, что finc_a и func_b принадлежат классу Base, иначе синтаксический анализатор будет ругаться на неопределенные функции
Тут все элементарно. Вот эквивалент:
*2 - прототип функции obj_b, возвращающий A. В дальнейшем синтаксическая ошибка при попытке вызвать метод от функции. Правило С++ - то, что выглядит как прототип функции таковым и является (даже если программист имел в виду нечто иное)
Это сообщение отредактировал(а) xvr - 10.7.2011, 19:11 |
||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
Сыроежка |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: 1 Всего: 1 |
Да вы внимательно смотрите свой же код! У вас нет определения этого оператора! Вы его только объявили! Поэтому редактор связей вам выдаст ошибку на этапе редактирования, так как не найдет определение этого оператора! Вы уж хоть бы сами в своих примерах разбирались! Добавлено через 2 минуты и 17 секунд
Да ничего не эквивалентно! У вас неработающий код, так как у вас нет определения оператора! Вы лишь его продекларировали! Поэтому программа работать не будет! Редактор связей выдаст ошибку, так как не найдет определение этого опреатора для вашего класса! |
||||
|
|||||
alexvs11 |
|
|||
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
||||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
держался до последнего ![]()
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
оффтоп: Почему C++-программисты ругаются, подобно Java-быдлокодерам?
-------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
spyswamp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 18.8.2006 Репутация: 1 Всего: 7 |
Ну, это я из темы прочитал. Только прикола все равно не понял.
![]() ![]() ![]() P.S. квесты ниче так в этих темах, освежают память. Если бы самоцелью было только это (а не травля, ботанов не затравишь, они тупые, чтобы это понять), то вообще шикарно было бы. -------------------- - why you call it beta? - cuz it's betta then nothin' |
|||
|
||||
Сыроежка |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 24.6.2011 Репутация: 1 Всего: 1 |
ВЫ можете его определить хоть у себя на лбу! Это никого не касается. Но вы приводите конкретный пример кода и просите ответа на то, как этот конкретный код будет себя вести. Я вам ответил. В следующий раз грамотно составляйте примеры. Если для вас определение опереатора не важно, то заключите в фигурные скобки либо многоточия, либо вставьте комментарий типа { /*function body*/}, и тогда вопросов не будет. И как раз голословность имеет отношение к вам! Я вам конкретно указал, какоы будет результат работы вашего кода. Если вы безграмотны, то причем здесь я?!! Это сообщение отредактировал(а) Сыроежка - 13.7.2011, 16:22 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
voral |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
+100500 Интересный бы мог быть раздел на форуме. [OFF] За попкорном, что ли сбегать..... [/OFF] Это сообщение отредактировал(а) voral - 13.7.2011, 23:24 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |