Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2014, 19:04   #1
danil123
Пользователь
 
Регистрация: 06.07.2012
Сообщений: 80
По умолчанию Шаблон структуры

Здравствуйте! Есть такой код

Почему-то вылетают эрроры из-за того, что Tstack не определен. Но ведь он определен!
Также непонятно, зачем ему точку с запятой надо ставить туда, куда не надо.

Помогите, пожалуйста!
danil123 вне форума Ответить с цитированием
Старый 20.03.2014, 20:49   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

он не знает, что такое TStack

ему не знакомо такое имя.

выше есть объявление шаблона.

Но использование шаблона предполагает использовать параметр:
Код:
TStack<int> * next
а просто TStack* next --- к чему это относится?
_Bers вне форума Ответить с цитированием
Старый 20.03.2014, 21:37   #3
danil123
Пользователь
 
Регистрация: 06.07.2012
Сообщений: 80
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
он не знает, что такое TStack

ему не знакомо такое имя.

выше есть объявление шаблона.

Но использование шаблона предполагает использовать параметр:
Код:
TStack<int> * next
а просто TStack* next --- к чему это относится?
По задумке это список, next указатель на следующий элемент
danil123 вне форума Ответить с цитированием
Старый 21.03.2014, 06:39   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от danil123 Посмотреть сообщение
По задумке это список, next указатель на следующий элемент
компилятор не телепат. Он руководствуется правилами языка.
_Bers вне форума Ответить с цитированием
Старый 21.03.2014, 12:09   #5
danil123
Пользователь
 
Регистрация: 06.07.2012
Сообщений: 80
По умолчанию

А почему вы написали инт? Если пользователь введет не инт, а стринг или дабл, что тогда делать?
Я не могу написать TStack<T> * next, чтобы все само подставлялось?
Еще вопрос: если у меня несколько фунций с неопределенным типом входных данных, необходимо перед каждой функцией писать
Код:
template<typename T>
Или один раз написав, тип T можно использовать где угодно?

Последний раз редактировалось danil123; 21.03.2014 в 12:19.
danil123 вне форума Ответить с цитированием
Старый 21.03.2014, 12:48   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от danil123 Посмотреть сообщение
А почему вы написали инт? Если пользователь введет не инт, а стринг или дабл, что тогда делать?
что тогда делать зависит от вашего кода
Цитата:
Сообщение от danil123 Посмотреть сообщение
Я не могу написать TStack<T> * next, чтобы все само подставлялось?
нет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.03.2014, 13:15   #7
danil123
Пользователь
 
Регистрация: 06.07.2012
Сообщений: 80
По умолчанию

Пепел феникса, а как тогда? Ведь если я пропишу
Код:
Tstack<int>* next;
Он у меня будет всегда интовым, а нужны и другие типы в зависимости от ввода пользователя.
danil123 вне форума Ответить с цитированием
Старый 21.03.2014, 14:16   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от danil123 Посмотреть сообщение
Пепел феникса, а как тогда? Ведь если я пропишу
Код:
Tstack<int>* next;
Он у меня будет всегда интовым, а нужны и другие типы в зависимости от ввода пользователя.
значит эти другие типы надо обрабатывать, ибо наследование юзать, либо еще что.
шаблоны за вас магию не сделают, они на стадии компиляции раскрываются, не позже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.03.2014, 16:03   #9
danil123
Пользователь
 
Регистрация: 06.07.2012
Сообщений: 80
По умолчанию

Всем спасибо, тему можно закрыть
danil123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Дано: таблица в Exel (3 столбца, 4000 строк) и шаблон документа. Задача: Распечатать один и тот-же шаблон документа, под Evgenya040305 Помощь студентам 2 24.11.2011 22:21
Шаблон иерархической структуры данных в памяти konstahntin Общие вопросы C/C++ 0 18.12.2010 17:27
Шаблон структуры данных blackbanny Помощь студентам 5 04.05.2010 11:48