Реферат: Основы программирования в C++
Класс, свойства и поведение которого наследуются, называется базовым классом.
Класс, который наследует называет, называется производным классом.
Обычно процесс наследования начинается с задания базового класса. Базовый класс определяет все те качества, которые будут общими для всех производных от него классов. В сущности, базовый класс представляет собой наиболее общее описание ряда характерных черт. Производный класс наследует эти общие черты и добавляет свойства, характерные только для него.
Наследование, при котором указывается один базовый класс, называется простым.
Если указываются несколько классов, то наследование называется множественным.
Объявление выглядит следующим образом:
class имя класса : public имя базового класса
Например, class D: public A
{ … }
После имени класса D имеется двоеточие, за которым следует ключевое слово public и имя класса A. Для компилятора это указание на то, что класс D будет наследовать все компоненты класса A. Само ключевое слово public информирует компилятор о том, что, поскольку класс A будет наследоваться, значит, все открытые элементы базового класса будут также открытыми элементами производного класса. Однако все закрытые элементы базового класса останутся закрытыми и к ним не будет прямого доступа из производного класса. Причина, по которой закрытые члены класса становятся недоступными для производных классов – поддержка инкапсуляции. Если бы закрытые члены класса становились открытыми просто посредством наследования этого класса, инкапсуляция была бы совершенно несостоятельна.
При множественном наследовании объявление выглядит так:
class D: public A [, public C]
{ тело класса D}
Рассмотрим пример:
enumBool
{false, true}; //константы сводятся к int. Они изменяются с шагом равным единице.
class Point: public Location
{protected:
Bool vis;
public:
Point (int _x, int _y);
void Show();
void Hide();
};
Point::Point (int_x, int_y) : Location(_x, _y)
{vis=false;}
Здесь класс Point наследует свойства базового класса Location.
Наследование и контроль доступа
Спецификатор доступа определяет то, как элементы базового класса наследуются производным классом. Если спецификатором доступа наследуемого базового класса является ключевое слово public, то все открытые члены базового класса остаются открытыми и в производном. Если спецификатором доступа наследуемого базового класса является ключевое слово private, то все открытые члены базового в производном классе становятся закрытыми. В обоих случаях все закрытые члены базового класса в производном классе остаются закрытыми и недоступными.