13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!