|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
||||||
Проблема с typedef.... не виден новый тип данных!29.11.2011, 15:16. Показов 6156. Ответов 62
Метки нет (Все метки)
Пишу шаблон класса множество, у множеств элементы могут быть разного типа, одно, например, целочисленное, другое - строка.
Пользователю дается возможность выбрать тип, с которым ему работать. Тип выбирается через функцию MenuType() и через свитч конкретизируется... но сразу за границей свича новый тип данных становится недоступным. Как решить эту проблему? вот фрагмент кода, в котором все и происходит.
0
|
||||||
| 29.11.2011, 15:16 | |
|
Ответы с готовыми решениями:
62
Новый тип данных тип typedef Создать новый тип данных на Си |
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
|
| 29.11.2011, 15:18 [ТС] | |
|
что за скобки вынести?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 29.11.2011, 15:20 | |
|
Fantom.AS, Нельзя так делать.
0
|
|
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
|
| 29.11.2011, 15:22 [ТС] | |
|
Но как мне тогда сделать?
Если тип на этапе компиляции неизвестен? Не вставлять же каждый раз код и менять с int на double, с double на char?
0
|
|
|
Заблокирован
|
||||||
| 29.11.2011, 15:32 | ||||||
|
Fantom.AS,
У вас в коде тип T объявляется локальным по отношению к блоку кода switch Как ни странно, но у меня в MS VC++ 2010 прошел следующей код.
Я извиняюсь, но сразу же не заметил, что этот код некорректный! Дело в том, что в этом коде переопределяется тип T с помощью typedef, а это некорректно. В стандарте говорится, что компилятор не обязан делать предупреждения, что это переопредеение некорректно. Поэтому компилятор в данном случае принимает во внимание последнее определение typedef То есть даже если i = 0, значением T все равно будет char. Так что с typedef у вас ничего не получится!
0
|
||||||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
||||||
| 29.11.2011, 15:35 [ТС] | ||||||
0
|
||||||
|
Заблокирован
|
|||||||
| 29.11.2011, 15:40 | |||||||
0
|
|||||||
|
Заблокирован
|
||
| 29.11.2011, 15:42 | ||
![]() Что касается данного вашего вопроса. то это просто некая глобальная функция, которая ничего не делает кроме того, что выводит имя типа, заданного в качестве шаблонного аргумента функции.
0
|
||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
|
| 29.11.2011, 15:45 [ТС] | |
|
Я через if тоже пробовал, не работает...
0
|
|
|
Заблокирован
|
||||||
| 29.11.2011, 15:47 | ||||||
Есть подозрение, что тайпдефы обрабатываются препроцессором, и не зависят от управляющий логики самого с++ Какой последний тайпдеф был задекларирован, тот и будит участвовать в рантайме
0
|
||||||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
|
| 29.11.2011, 15:50 [ТС] | |
|
мда.... как же мне тогда выйти из сложившейся ситуации?
0
|
|
|
Заблокирован
|
||
| 29.11.2011, 15:50 | ||
|
0
|
||
|
Заблокирован
|
|||
| 29.11.2011, 15:54 | |||
|
Ладно.. если поведение не определено, стало быть такими фокусами лучше не пользоваться. Добавлено через 46 секунд
0
|
|||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
|
| 29.11.2011, 15:55 [ТС] | |
|
я бы поменял, но вчера задали так задание.... вот маюсь теперь....
0
|
|
|
Заблокирован
|
|||||||
| 29.11.2011, 16:04 | |||||||
0
|
|||||||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
||||||
| 29.11.2011, 16:16 [ТС] | ||||||
|
Мне тогда придется вот это много раз это копипастить..... Меняется только тип....
очень много.... и как сообщить другим функциям, что я использую этот тип
0
|
||||||
|
|
||||||
| 29.11.2011, 16:21 | ||||||
|
Ну может все сделать проще?
1
|
||||||
|
Заблокирован
|
||||||
| 29.11.2011, 16:29 | ||||||
|
можно что то типа пот так вот:
0
|
||||||
|
2 / 1 / 2
Регистрация: 17.11.2010
Сообщений: 121
|
||||||||||||||||
| 29.11.2011, 16:49 [ТС] | ||||||||||||||||
|
Еще вопрос, правильно ли я описал шаблон класса?
А то не хочет работать....
и
0
|
||||||||||||||||
| 29.11.2011, 16:49 | |
|
Помогаю со студенческими работами здесь
20
Новый тип данных в объявлении метода класса Как на VB 7 создать новый тип данных(свой)? Функциональный тип через typedef Определяя класс в PHP, мы создаем новый ТИП данных? Проблема с typedef и FILE* Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|