Erich Gamma Ralph Johnson Richard Helm John Vlissides Addison-Wesley



Download 6,32 Mb.
Pdf ko'rish
bet270/273
Sana02.03.2022
Hajmi6,32 Mb.
#479589
1   ...   265   266   267   268   269   270   271   272   273
Bog'liq
Priemioop

Приложение С. Базовые классы
В данном приложении документируются базовые классы, которые применялись
в примерах кода на C++ в описаниях различных паттернов проектирования. Мы
специально стремились сделать эти классы простыми и минимальными. Будут
описаны следующие классы:
a List - упорядоченный список объектов;
а Iterator - интерфейс для последовательного доступа к объектам в агре-
гате;
a Listlterator - итератор для обхода списка;
a Point - точка с двумя координатами;
a Rect — прямоугольник, стороны которого параллельны осям координат.
Некоторые появившиеся сравнительно недавно стандартные типы C++, воз-
можно, реализованы еще не во всех компиляторах. В частности, если ваш компи-
лятор не поддерживает тип bool, его можно определить самостоятельно:
typedef int bool;
const int true = 1;
const int false = 0;
C.1. List
Шаблон класса List представляет собой базовый контейнер для хранения
упорядоченного списка объектов. В списке хранятся значения элементов, то есть
он пригоден как для встроенных типов, так и для экземпляров классов. Например,
запись List объявляет список целых int. Но в большинстве паттернов
в списке хранятся указатели на объекты, скажем, List. Это позволяет
использовать класс List для хранения разнородных объектов (точнее, указате-
лей на них).
Для удобства в классе List есть синонимы для операций со стеком. Это по-
зволяет явно использовать список в роли стека, не определяя дополнительного
класса:
template 
class List {
public:
List(long size = DEFAULT_LIST_CAPACITY);
List(List&);
~List();
List& operator=(const List&);


List
long Count() const;
Item& Get(long index) const;
Item& First() const;
Item& LastO const;
bool Includes(const Item&) const;
void Append(const Item&);
void Prepend(const Item&);
void Remove(const Item&);
void RemoveLast();
void RemoveFirst();
void RemoveAll();
Item& Top() const;
void Push(const Item&);
Item& PopO ;
};
В следующих разделах операции описываются более подробно.

Download 6,32 Mb.

Do'stlaringiz bilan baham:
1   ...   265   266   267   268   269   270   271   272   273




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish