Абстрактный класс в примере C ++ | Руководство по абстрактному классу C ++

Абстрактный класс C ++ концептуально является классом, который не может быть создан, и он должен быть реализован как класс, который имеет одну или несколько чистых виртуальных (абстрактных) функций. Чистая виртуальная функция — это функция, которая должна быть переопределена любым конкретным (т. Е. Не абстрактным) производным классом.

Прежде чем понимать абстрактный класс в C ++, важно знать концепции виртуальных функций как это неотъемлемая часть изучения концепции абстрактных классов в C ++.

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

Абстрактный класс в C ++

Класс является абстрактным, если он имеет хотя бы одну чистую виртуальную функцию. Чистая виртуальная функция в C ++ может быть указана как функция, которая объявлена ​​только в базовом классе и определена в производных классах. Проще говоря, это можно описать как функции, которые только объявлены, а не реализованы в базовом классе. Эти функции известны как виртуальные функции.

# Синтаксис для объявления виртуальной функции

См. следующий синтаксис.

 class class_name {public: virtual return_type function_name () = 0;}; 

См. следующий пример.

 class A {public: virtual void fun_1 () = 0;}; 

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

# Свойства абстрактных классов

  1. Абстрактные классы не могут иметь объектов.
  2. Чтобы быть абстрактным классом, он должен иметь хотя бы один виртуальный класс.
  3. Мы можем использовать указатели и ссылки на абстрактный тип класса.
  4. Если мы этого не сделаем. не переопределять виртуальную функцию в производном классе, тогда производный класс также становится абстрактным классом.
  5. Мы можем создавать конструкторы абстрактного класса.

# Класс Abstract в java Vs. Абстрактный класс в C ++

Если мы хотим сделать абстрактный класс в java, мы используем ключевое слово abstract. Точно так же мы можем создавать чистые виртуальные функции, чтобы сделать класс абстрактным.

В C ++ нам не нужно добавлять ключевое слово abstract в качестве базового класса, который имеет хотя бы одну чистую виртуальную функцию, которая считается абстрактным классом.

# Примеры абстрактного класса в C ++

Напишите одну программу, чтобы показать механизм абстрактного класса.

 #include  с использованием пространства имен std; class A {public: virtual void test () = 0; //объявление виртуальной функции}; class B: public A {public: void test () {cout  

См. следующий результат.

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

 #include  using namespace std; class A {  общедоступные: int a, b, c;  виртуальный недействительный тест () = 0;  A (int a, int b) {cout  

См. следующий результат.

Теперь напишем последнюю программу. Покажите, что мы не можем создавать объекты абстрактного класса в C ++.

 #include  using namespace std; class A {public: virtual void test () = 0;}; class B: public  A {public: void test () {cout  

См. следующий результат.

Наконец, абстрактный класс in C ++ Example Tutorial:

См. также

Полиморфизм в C ++

Полиморфизм в Java

Перегрузка функций в C ++

Переопределение функций в C ++

Перегрузка операторов в C ++

Оцените статью
nanomode.ru
Добавить комментарий