logo search
Шпора по информатике / 002

15.5 Пример класса Tkplk

#include <iostream.h >

#include <conio.h >

#include <string.h >

class Tkplk {

private: int sum;

public: int hei, wei, cvet;

char nazv[20];

void show (int kodrm) ;

void add (int kop);

Tkplk ( int , int , int ,char * ); //это прототип конструктора

//- - - - - - - - - - - - - - - -

int dzin() { // разбиваем копилку

cout<< " Broken with sum= "<<sum<<endl; return 1; }

}; // end of class - - - - - - - - - - - - - - - -

void Tkplk::show ( int kodrm) {

cout << "ris. kopilki with hei="

<< hei<<" wei= "<<wei<<" cvet="<<cvet<<endl;

cout<< " It is ";

for(int j=0; j<strlen(nazv);j++) cout<<nazv[j];

cout<<endl; if( kodrm==1) cout<< "ris. ramki"<<endl;

}

//- - - - - - - - - - - - - - - -

void Tkplk::add (int kop) {

sum +=kop; }

//- - - - - - - - - - - - - - - -

Tkplk::Tkplk ( int he=10, int we=10, int cv=10,char *nz="cat" )

{ sum=0; hei=he; wei=we;

cvet=cv;

for (int m=0; m<=strlen(nz); m++) nazv[m]=nz[m];

// <= for last symbol '\0'

}

// - - - - - - - - - - - - -

void main() {

Tkplk myKplk1, myKplk2(15,15,15,"tiger");

cout<< " myKplk1.hei="<<myKplk1.hei <<endl;

cout<< " myKplk2.hei="<<myKplk2.hei <<endl;

cout<< " strlen(myKplk2.nazv)="<<strlen (myKplk2.nazv);

cout<<endl;

myKplk1.show(1); myKplk2.show(0);

cout<<"end show"<<endl;

myKplk2.add(50); myKplk2.add(30);

myKplk1. dzin(); // cout<<myKplk1.sum;

myKplk2.dzin(); getch();

}

// - - - - - - - - - - --

15.6 Заключение к лекции 15

1. Класс содержит данные, методы и конструкторы, причем любая часть или любая пара

из этих трех частей может отсутствовать.

2. Обычно методы, т.е. принадлежащие классу функции, записываются вне

определения класса с указанием полного имени

тип_функц класс : : функц ( аргументы) { . . . текст функции . . . }

В этом случае наличие прототипа функции внутри определения класса обязательно.

Это правило относится и к конструкторам класса.

3. Для работы с элементами класса должны быть созданы объект или объекты

этого класса. Обращение к элементу записывается с именем объекта или с указателем

на объект.

Лекция 16 Наследование и полиморфизм

Эти принципы ООП уже рассматривались кратко в разделе 14.3. Повторим их и рассмотрим примеры использования.