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();


 

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

66831. Молекулярна фізика. Основні формули 1.02 MB
  Сили поверхневого натягу діють на внутрішню та зовнішню поверхні трубки. Враховуючи невелику товщину стінок трубки, можна вважати радіуси кривини поверхонь рідини біля стінок капіляра однаковими за величиною всередині та ззовні трубки.