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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 19:34   #1
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию Структура в качестве параметра параметризованного класса

Здравствуйте))

Помогите пожалуйста разобраться с шаблонами и параметризованными классами в С++.

Допустим, у меня имеется параметризованный класс, который работает с базовыми типами данных.

Код HTML:
template <typename CData>
class Dec
{
private:
        struct Node {    
			Node(CData const& u, CData const& f, CData const& c, CData const& s) {
					university=u;
					faculty=f;
					chair=c;
					study=s;

					next=NULL;
					prev=NULL;
				}

				CData university, faculty, chair, study;
				Node *next, *prev;
        };

		Node* Head;
		Node* Tail;
        
		int size;

public:

         Dec() { Head=NULL, Tail=NULL; size=0; }
        ~Dec() { clear(); }

        bool push(CData const& u, CData const& f, CData const& c, CData const& s) {
                Node* tmp=new Node(u,f,c,s);

				tmp->next=Head;
				tmp->prev=NULL;

				if (Head) Head->prev = tmp;

                Head=tmp;
                if(!Tail) {
						Tail=Head;
                        size++;
                        return true;
                }
				size++;
                
                return true;
        }
};

И я с ним работаю вот таким образом:

Код HTML:
int main()
{
	Dec<int> d1;
	d1.push(10,10,10,10);
	d1.push(20,20,20,20);
	d1.push(30,30,30,30);
}
Подскажите пожалуйста, как что нужно изменить, чтобы мой параметризованный класс работал с производным типом данных.

Код HTML:
int main()
{
	Dec<Student> d1;
	d1.push(Student(10,10,10,10));
	d1.push(Student(20,20,20,20));
	d1.push(Student(30,30,30,30));
}
Спасибо))
applegrub вне форума Ответить с цитированием
Старый 13.03.2012, 19:54   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Книга подскажет: Вандевурд, Джосаттис - Шаблоны C++
_Bers вне форума Ответить с цитированием
Старый 13.03.2012, 20:06   #3
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Книга подскажет: Вандевурд, Джосаттис - Шаблоны C++
Я смотрел, там не совсем понятно. Я знаю что нужно добавить оператор сравнения и конструктор, но у меня не получается.

Я знаю, что есть гугл и много других средств. Объясните пожалуйста что мне надо изменить.
applegrub вне форума Ответить с цитированием
Старый 13.03.2012, 21:14   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

что именно не совсем понятно?
_Bers вне форума Ответить с цитированием
Старый 13.03.2012, 21:18   #5
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
что именно не совсем понятно?
не понятно, как конкретно изменить код, чтобы обеспечить поддержку при работе с производными типами данных
applegrub вне форума Ответить с цитированием
Старый 13.03.2012, 21:38   #6
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

начни с простейших шаблонов и функций. Постепенно наращивая сложность конструкции.
_Bers вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерфейс в качестве параметра sVasilich Общие вопросы C/C++ 8 13.01.2012 15:36
Конструктор класса не хочет принимать в качестве параметра адрес объекта другого класса Jugger Помощь студентам 3 05.01.2012 04:10
Двумерный массив в качестве параметра _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 15 06.07.2010 22:59
Массив в качестве параметра DeKot Общие вопросы Delphi 6 15.10.2009 22:32
Передача метода класса в качестве параметра в другой метод Dmytry87 Общие вопросы C/C++ 0 12.11.2008 15:28