![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
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. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |