46476

Объектное обобщение

Доклад

Информатика, кибернетика и программирование

Организация объектного обобщения: clss С1 { int x y z; public: void D1 { . clss Shpe { public: virtul void In = 0; ввод данных virtul void Out = 0; вывод данных virtul double re = 0; площадь }; Наследование механизм объектноориентированного программирования позволяющий описать новый класс на основе уже существующего родительского при этом свойства и функциональность родительского класса заимствуются новым классом. Наследование: Cинтаксис в языке C Наследование: Синтаксис в языке C clss { clss {...

Русский

2013-11-22

16.81 KB

1 чел.

Объектное обобщение не требует анализа признаков специализаций. Использует совокупность из двух статистически связанных агрегатов, динамически подключаемых к указателю на альтернативу.

Организация объектного обобщения:

class С1 {

 int x, y, z;

public:

 void D1() { /*...*/ }

 void P1() { /*...*/ }

}

Пример использования объектного обобщения

// Класс, обобщающий все имеющиеся фигуры.

class Shape {

public:

 virtual void In() = 0;  // ввод данных

 virtual void Out() = 0; // вывод данных

 virtual double Area() = 0; // площадь

};

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

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

Наследование: Cинтаксис в языке C#   Наследование: Синтаксис в языке C++

class A {      class A {

};       };

class B : A {      class B : public A {

};       };

Описание и использование виртуальных функций С++

• Если в предке функция определена как виртуальная, то функция в потомке, с тем же именем и набором параметров, автоматически становится виртуальной

• Виртуальные функции наследуются

• Потомки могут получить доступ к функции предка с помощью операции доступа к области видимости

Чисто виртуальные (абстрактные) функции и классы С++

Содержат признак "= 0" вместо тела: virtual void F() = 0;

Обязательно должны переопределяться в производном классе

Класс, содержащий хотя бы один чисто виртуальный метод, называется абстрактным

class A {

 // ...

public:

 virtual void F() = 0;

};

class B : public A {

 // ...

public:

 virtual void F() {

   wcout << L"Это класс B" << endl;

 }

};

A a;

A* a = new A;

B b;

A* a = new B;

Описание и использование виртуальных функций С#

Синтаксис языка С# по отношению к виртуальным функциям отличается от С++

• Виртуальные функции объявляются при помощи ключевых слов virtual или abstract

• При наличии хотябы одной абстрактной функции необходимо писать abstract перед именем класса

• Виртуальные функции явно переопределяются в потомках с помощью ключевого слова override

• Доступ к виртуальным функциям родительского класса из потомков производится при помощи ключевого слова base

Описание и использование виртуальных функций С#

 abstract class A {

   public abstract void F();

 }

class B : A {

   public override void F() { }

 }

A a = new A();

A a = new B();


 

А также другие работы, которые могут Вас заинтересовать

66605. Системы управления ИТ-инфраструктурой 51.54 KB
  Существует несколько методов оценки глубины полупространственная глубина симплексная глубина и глубина зоноида. Определение глубины Глубина является мерой близости к центру с помощью которой многомерная информация может быть упорядочена.
66606. Создания информационной системы компании «ИП Шедиков Е.Г.» 330.5 KB
  Качество обслуживания клиентов. Ассортимент продукции изменяется каждый день и даже самый опытный продавец не в состоянии полностью отследить все эти изменения. На торговых точках продавцу просто необходимо знать информацию о реализуемой продукции и быстро предоставлять ее клиенту.