C++ Программирование в среде С++ Builder 5

Простое наследование


При простом, наследовании производный класс порождается всего одним базовым классом. Вот пример:

#include <stdio.h>

#include <string.h>

class Time { // Базовый класс - время.

int hr, min;

public:

Time(int h=12, int m=0): hr(h), min(m) {}

void SetTime(int h, int m) ( hr = h; min = m; }

void Show() ;

};

void Time::Show() {

printf("%02d:%02d", hr, min);

}



class Alarm: public Time { // Класс сообщений таймера.

char *msg;

public:

Alarm(char*);

~Alarm() { delete [] msg; }

void SetMsg(char*);

void Show(); // Переопределяет Time::Show (). };

Alarm::Alarm(char *str) ;

{

msg = new char[strlen (str) + 1];

strcpy(msg, str);

}

void Alarm::SetMsg(char *str) {

delete [] msg;

msg = new char[strlen (str) + 1];

strcpyfmsg, str);

}

void Alarm::Show()

{

Time::Show(); // Вызов базовой Show(). printf(": %s\n", msg);

int main () {

Alarm a = "Test Alarm!!!"; // Время по умолчанию 12:00.

а.Show ();

a.SetTime(7, 40); // Функция базового класса. а.Show () ;

а.SetMsg("It's time!); // Функция производного класса. a.Show();

return 0;

}



Содержание раздела