13.01.2015 Views

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

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

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

118<br />

Более сложный пример помогает разобраться с различными вариантами<br />

<strong>на</strong>следования:<br />

AnsiString result;<br />

class VProcessor {<br />

int frequency;<br />

public:<br />

VProcessor (int j = 100): frequency (j) {}<br />

virtual void Out () { result += "\nПроцессор " + AnsiString (frequency); }<br />

void Out (AnsiString s) { result += "\n" + s + AnsiString (frequency); }<br />

};<br />

class VComputer: public VProcessor {<br />

int hardDisk;<br />

public:<br />

VComputer (int j = 800): VProcessor (133), hardDisk (j) {}<br />

void Out () { result += "\nКомпьютер " + AnsiString (hardDisk); }<br />

int Out (AnsiString s) {<br />

result += "\n" + s + AnsiString (hardDisk);<br />

return hardDisk;<br />

}<br />

};<br />

void MainVirtual2 () {<br />

VProcessor intel, motorola (150), *cirix;<br />

VComputer ibm, macintosh (200),<br />

*proforma = &macintosh;<br />

intel.Out (); // Процессор 100<br />

motorola.Out (); // Процессор 150<br />

ibm.Out (); // Компьютер 800<br />

macintosh.Out (); // Компьютер 200<br />

intel.Out ("Intel "); // Intel 100<br />

motorola.Out ("Motorola "); // Motorola 150<br />

ibm.Out ("IBM "); // IBM 800<br />

macintosh.Out ("Macintosh "); // Macintosh 200<br />

cirix = proforma;<br />

cirix–>Out (); // Компьютер 200<br />

cirix–>Out ("Macintosh "); // Macintosh 133<br />

proforma–>Out (); // Компьютер 200<br />

proforma–>Out ("Macintosh "); // Macintosh 200<br />

ShowMessage (result);<br />

}<br />

Виртуаль<strong>на</strong>я функция, не определен<strong>на</strong>я в базовом классе, <strong>на</strong>зывается<br />

чистой виртуальной функцией (pure virtual function) и объявляется как

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

Saved successfully!

Ooh no, something went wrong!