Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 39 стр.

UptoLike

Составители: 

class SymbolLocation:/*-символ и его позиция: */
public Location
{ char Symbol;/*-поле для записи символа; */
public: /*-открытая часть производного класса; */
SymbolLocation(int X,int Y,char Sym):
Location(X,Y) { Symbol=Sym;}
~SymbolLocation() { } /*-пустой деструктор; */
virtual void Print() /*-реализация функции; */
const { cout<<"\n"<<Symbol; }
};/*-конец определения 1-го производного класса; */
class StringLocation:/*-строка и ее начальная позиция: */
public Location
{ char* String;/*-указатель поля для строки; */
public: /*-открытая часть класса: */
StringLocation(int X,int Y,char* Str):
Location(X,Y) { String=Str; }/*-конструктор;*/
~StringLocation() { } /*-пустой деструктор; */
virtual void Print() /*другая реализация функции; */
const { cout<<"\n"<<String; }
};/*-конец определения 2-го производного класса; */
void Print(Location* ObjPtr) /*-вывод полиморфного объ- */
/* екта(символа или строки): */
{ ObjPtr->Print(); }
void main(void) /*-главная программа,использующая раз- */
/* личные объекты типов,производных от */
/* базового типа Location: */
{ SymbolLocation SymLoc(1,1,'A');
StringLocation StrLoc(1,1,"ABC");
SymbolLocation* SymLocPtr=&SymLoc;
StringLocation* StrLocPtr=&StrLoc;
Print(SymLocPtr);/*-выдача символа на экран; */
Print(StrLocPtr);/*-выдача строки на экран; */
} /*-конец программы выдачи полиморфного объекта; */
39
class SymbolLocation:/*-символ и его позиция:                  */
                    public Location
     { char Symbol;/*-поле для записи символа;                 */
  public: /*-открытая часть производного класса;               */
        SymbolLocation(int X,int Y,char Sym):
              Location(X,Y) { Symbol=Sym;}
       ~SymbolLocation() { }    /*-пустой деструктор;          */
        virtual void Print() /*-реализация функции;            */
                               const { cout<<"\n"<Print(); }


void main(void) /*-главная программа,использующая раз-         */
                /* личные объекты типов,производных от         */
                /* базового типа Location:                     */
     { SymbolLocation SymLoc(1,1,'A');
       StringLocation StrLoc(1,1,"ABC");
       SymbolLocation* SymLocPtr=&SymLoc;
       StringLocation* StrLocPtr=&StrLoc;
       Print(SymLocPtr);/*-выдача символа на экран;            */
       Print(StrLocPtr);/*-выдача строки на экран;             */
     } /*-конец программы выдачи полиморфного объекта;         */


                          39