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.

99<br />

AnsiString result;<br />

VDeque *cursor = head;<br />

while (cursor != this) {<br />

result += AnsiString (cursor–>info) +'\t';<br />

cursor = cursor–>next;<br />

}<br />

ShowMessage (AnsiString (cursor–>info));<br />

}<br />

void MainVDeque () {<br />

VDeque a, b, c, d;<br />

a.Add ("IBM"); a.AddNode ();<br />

b.Add ("Siemens"); b.AddNode ();<br />

c.Add ("Motorola"); c.AddNode ();<br />

d.Add ("Apple"); d.AddNode ();<br />

b.Out ();<br />

}<br />

Конструкторы и деструкторы<br />

Для автоматической инициализации объектов класса используются<br />

конструкторы – бестиповые, одноименные с классом член-функции:<br />

class VMicroPC {<br />

AnsiString type;<br />

int price;<br />

public:<br />

VMicroPC (AnsiString a, int b) { type = a; price = b; } // конструктор<br />

void Out () { ShowMessage ("Компьютер " + type + " стоит $" + price); }<br />

};<br />

void MainVMicroPC() {<br />

AnsiString comp1 = "IBM", comp2 = "Macintosh";<br />

VMicroPC myCPU (comp1, 990), yourCPU (comp2, 1500);<br />

myCPU.Out();<br />

yourCPU.Out();<br />

}<br />

Конструктор вызывается не только при определении нового объекта<br />

класса для объявления данных, но и при копировании объекта или при ди<strong>на</strong>мическом<br />

выделении памяти новому объекту. В качестве аргументов копирующего<br />

конструктора (copying constructor) используются ссылки <strong>на</strong> копируемые<br />

объекты. Примером может служить конструктор типизированного<br />

класса AnsiString:

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

Saved successfully!

Ooh no, something went wrong!