Стандартные ДСД... хз еще что

Модераторы: Romeo, Hawk, Absurd, WinMain, DeeJayC

Ответить
Аватара пользователя
Vladimir89
Сообщения: 75
Зарегистрирован: 21 май 2007, 02:25

26 дек 2007, 17:02

В общем есть задание в кратце такое:
Создать класс “Поликлиника”, состоящей из класса ”Врач”.
Задание реализовать с помощью динамических структур данных, одна из которых разрабатывается, а вторая используется стандартная.
-----------------------------------------------------------------
Честно говоря как это делать самому - голова не поняла. Взял готовую работу и вот что я там увидел(максимально укорочено чтобы была видна суть):

Код: Выделить всё

#include <list>
using namespace std;

class ElSpektakl
{
	char NazvSpekt[15];
	char Avtor[15];
	int KolvoAkterov;
public:
	ElSpektakl ()
	{	}
	ElSpektakl (char* s, char* n, int k)
	{
		try
		{
			if(k<=0) throw k;
			KolvoAkterov=k;
			strcpy_s(NazvSpekt, s);
			strcpy_s(Avtor, n);
		}
		catch (int k)
		{
			cout<<endl<<" Nepravil'nie dannie "<<k;
			_getch();
			exit(1);
		}
	}
	char* getNazvSpekt()	{	return NazvSpekt;	}
	char* getAvtor()		{	return Avtor;	}
	int getKolvoAkterov()	{	return KolvoAkterov;	}
	friend ostream& operator << (ostream& p, ElSpektakl& N);
};

ostream& operator << (ostream& p, ElSpektakl& N)
{}

class ElTeatr
{
	char NazvTeatra[15];
	char Rejisser[15];
	int KolvoSpekt;
	ElTeatr* Next;
	list <ElSpektakl> L1;
public:
	list <ElSpektakl> * getdec()	{	return &L1;	}
};
И теперь толпой идут вопросы:
1) По сути, то что один класс является частью другого - list <ElSpektakl> L1;
А что вот это действие означает?
2) list <ElSpektakl> * getdec(). Для чего нужна эта функция? :confused:
Си ++
Здоровье --
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

26 дек 2007, 17:22

1. list <ElSpektakl> L1 - это не действие. Это объявление члена (мембера) класса. Этот мембер является объектом класса list<ElSpektakl>. Класс-шаблон list - это часть STL. Он является С++ реализацией алгоритмической единицы "список". Думаю, подробнее рассказывать о том, что такое список смысла нет.

2. Это не функция, а метод. Он возвращает указатель на внутрений мембер, который является объектом класса list <ElSpektakl>. Это метод нужен для того, чтобы список спектаклей был доступен снаружи. Без наличия этого метода мы бы не смогли снаружи обращаться к списку спектаклей так, как мембер L1, расположен в приватной секции класса ElTeatr.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Vladimir89
Сообщения: 75
Зарегистрирован: 21 май 2007, 02:25

26 дек 2007, 17:25

Чтобы я без тебя Ромео делал :D
Си ++
Здоровье --
Аватара пользователя
Vladimir89
Сообщения: 75
Зарегистрирован: 21 май 2007, 02:25

26 дек 2007, 19:41

А как эт овообще представить ? По первому пункту. Тоесть я новый класс елТеатр обьявьляю как что? Как член класса ел Спектакль? тогда причем тут лист? Ведь у нас, как я понял, есть класс (елСпектакль), а одним из его членов тоже является класс (елТеатр)? Мне например нужно тоже самое реализовать с <stack> . Что измениться то ?
В джосатисе это есть ? (книгу еле еле откопал в инете в довольно паршивом качестве, пытался найти это но не нашел).
Си ++
Здоровье --
Ответить