![]() |
|
Модераторы: bsa |
![]()
|
|
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
В нижеприведенном примере тип переменной Money bal согласно книжке(цитаты из неё ниже привожу) должен быть double. Но он int.
Как это объяснить? Name Lookup for Class Member Declarations Names used in the declarations of a class member are resolved as follows:
Перевод из русского издания книги: Поиск имён для объявлений членов класса. Поиск имён, используемых в объявлениях членов класса, осуществляется в следующем порядке.
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
а это понимать так, что, согласно книге, повторный typedef приведёт к ошибке // error: cannot change meaning of Money
и опять же, согласно книге, поиск имени Money компилятор ищет от точки объявления и выше. но никак не ниже. читайте второй пункт списка. |
|||
|
||||
| C/L |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 31.7.2004 Где: Самара Репутация: нет Всего: 1 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
перенесите 7ю строку (typedef ..) выше первого определения Money , иначе когда компилятор доходит до нее возникает коллизия типов.
Это сообщение отредактировал(а) mes - 10.3.2009, 16:55 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
zim22, Я не в курсе что там в твоей книжке написано, но мне кажется что компилятор правильно поступил.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
scope разный у тайпдефов. Причем реально Money balance() возвращает double, а Money bal реально int
Перенеси первый тайпдеф в класс и тогда получишь ошибку. А так не вижу особых проблем. По книге написано, что ищется выше - оно и ищется выше. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
спасибо, разобрался
|
|||
|
||||
![]()
|
| Правила форума "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. |