Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

ПРОИЗВОДНИ КЛАСОВЕ, НАСЛЕДЯВАНЕ И ПОЛИМОРФИЗЪМ


Информационни технологии | 2009-12-04 | 143 сваляния

7. ПРОИЗВОДНИ КЛАСОВЕ, НАСЛЕДЯВАНЕ И ПОЛИМОРФИЗЪМ

7.1. ДЕКЛАРИРАНЕ НА КЛАС КАТО ПРОИЗВОДЕН

Всеки клас може да дъде деклариран като производен клас (клас наследник) на други вече декларирани класове, които, с това, стават негови базови класове. Понятията базов и производен клас са относителни, тъй като всеки производен клас може да бъде базов за други класовe.

Даден клас D се декларира като производен на класa B както следва:

class D : [public|private|protected] B {

< декларации на компоненти >

};

Пред иметo на базовия клас може да се постави една от ключовите думи public, private или protected (private e подразбираща се, а protected тук е равнозначна на private). Тяхното значение ще бъде изяснено по-надолу.

С декларирането на даден клас като производен, той ще получи достъп до компонентите на базовия клас, регламентиран от правила, които са разгледани по-нататък.

Програма 7.1. е примерна програма за дефиниране и използване на производен клас. В нея е дефиниран един производен клас с име TheCar, който има един базов клас с име Car.

Програма 7.1. Базов клас Car и производен клас TheCar

#include

#include

#include

// Декларация на клас Car, който е базов за класа TheCar

class Car {

public:

void makeCar(char *,int);

void printCar();

private:

char *mark; //Марка

int year; //Година на производство

};


// Дефиниция на метод makeCar на класа Car

void Car::makeCar(char *a,int b)

{

mark=new char[strlen(a)+1];

strcpy(mark,a);

year=b;

}

// Дефиниция на метод printCar на класа Car

void Car::printCar()

{

cout<<"Марка: "<<mark<<'n';

cout<<"Година: "<<year<<'n';

}

// Декларация на производен клас TheCar с базов клас Car

class TheCar:Car{

public:

void makeTheCar(char *,int,int);

void printTheCar();

private:

ПРОИЗВОДНИ КЛАСОВЕ, НАСЛЕДЯВАНЕ И ПОЛИМОРФИЗЪМ

Добави своя коментар:



Тагове от реферата: , , ,