Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
const MAX = 10;<br />
112<br />
template class VStack {<br />
int num;<br />
T *items;<br />
public:<br />
VStack (int size = MAX) { num = 0, items = new T[size]; }<br />
~VStack () { delete [] items; }<br />
void Push (T t) { items[num++] = t; }<br />
T Pop () { return items[– –num]; }<br />
};<br />
void MainVStack () {<br />
VStack StackInt (10);<br />
StackInt.Push (33); StackInt.Push (44); StackInt.Push (55);<br />
ShowMessage ("В стеке целые числа: " + AnsiString (StackInt.Pop()) + ',' +<br />
AnsiString (StackInt.Pop()) + ',' + AnsiString (StackInt.Pop()));<br />
VStack StackDouble (10);<br />
StackDouble.Push (33.3); StackDouble.Push (44.2);<br />
StackDouble.Push (–55.1);<br />
ShowMessage ("В стеке вещественные числа: " +<br />
AnsiString (StackDouble.Pop ()) + ',' +<br />
AnsiString (StackDouble.Pop ()) + ',' + AnsiString (StackDouble.Pop ()));<br />
}<br />
И еще один шаблон класса. Он обрабатывает массивы разных типов:<br />
template class VVector {<br />
T *elem;<br />
// тип и число элементов<br />
public:<br />
VVector ();<br />
T &operator[] (int i) { return elem[i]; }<br />
void Out ();<br />
};<br />
template VVector :: VVector () {<br />
elem = new T[size];<br />
for (int i=0; i