Помощь в написании студенческих работ
Антистрессовый сервис

Наследование классов в с++

РефератПомощь в написанииУзнать стоимостьмоей работы

Иерархия классов позволяет определить новые классы на основе уже имеющихся. Имеющиеся классы обычно зовут базовыми, а новыепользовательскими. Допускается множественное наследование. Возможность наследовать компоненты, несвязанных между собой базовых классов Производный (пользовательский) класс; Недопустима для вызова. Ее назначение — служить основой для подменяющих ее функций в производных… Читать ещё >

Наследование классов в с++ (реферат, курсовая, диплом, контрольная)

Иерархия классов позволяет определить новые классы на основе уже имеющихся. Имеющиеся классы обычно зовут базовыми, а новыепользовательскими. Допускается множественное наследование. Возможность наследовать компоненты, несвязанных между собой базовых классов Производный (пользовательский) класс;

Class s: x, y, z {…};

Класс s порожден классами x, y, z откуда он наследует компоненты. Наследование компонента не выполняется, если он его имя будет использовано в определении класса s. Класс называется непосредственным. Прямым базовым классом, если он входит в список при определении класса. Ко для производного класса могут существовать косвенные и непрямые предшественники. Наличие нескольких прямых базовых классов называют множественным наследованием. Определение базовых классов должны предшествовать их использованию.

Class A{public: void f ();…};

Class B{public: void f ();.};

Class c: A, B,{…}.

c.f ()//error.

c.A:f ()//ok.

Более удобно разрешить такую неоднозначность перекрытием в производном классе обеих функций.

Class c: A, B.

{…

Public:

Void f () {A:f ();B:f ();…}//перекрывает обе функции. };

c.f ();//Правильно Для классов, порожденных от производных классов с общей базой по умолчанию существует 2 экземпляра общей базы.

Class x {int I;…};

Class A: public {…};

Class B: public x {…};

Class C: public A, public B{…}.

Чтобы устранить дублирование объекта непрямого базового класса при множественном наследовании. Этот базовый класс объявляет виртуальным с помощью ключевого слова virtual.

Class v{int I;.};

Class A: virtual public v{.};

Class v: virtual public v{.};

Class c: public A, public B {…};

Виртуальная функция — используется когда в базовый класс необходимо поместить функцию, которая должна по-разному выполняться, т. е в каждом производном классе требуется свой вариант этой функции. Типы аргументов, их количество, а также тип возвращаемого значения должны быть такими же как у одноименной функции в базовом классе. Виртуальная функция не может быть статической, механизм виртуального вызова может быть подавлен с помощью явного использования полного квалификаионного имени.

Class phone.

{…

Public:

Virtual void GiveDiolTone ();//виртуальная функция…};

Class payphone: public Phone.

{int centsDeposited.

Public: PayPhone (int area, int change, int line);

Void GiveDiolTone ();

Int AcceptCoins ();…};

Виртуальные функции могут использоваться для создания абстрактных базовых классов. Абстрактный базовый класс — класс который содержит по крайней мере одну полностью виртуальную функцию-член, для которой объявлен интерфейс, а реализация находится в производном классе.

Virtual Draw ()const=0.

Недопустима для вызова. Ее назначение — служить основой для подменяющих ее функций в производных классах. Поэтому невозможно создать самостоятельных объектов абстрактного класса. Абстрактный класс может использоватьс только в качестве базового для производных классов.

Показать весь текст
Заполнить форму текущей работой