Что такое интерфейсы в C++

Cto Takoe Interfejsy V C



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

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

Что такое чистая виртуальная функция

Чистая виртуальная функция означает, что пользователи просто объявляют функцию, а не ее определение. Переопределение метода/функции используется для реализации чисто виртуальных методов в производном классе. Функция считается чисто виртуальной, если она описана внутри класса, как показано ниже:







Вот синтаксис Чистая виртуальная функция классной комнаты.



сорт Комната {
публичный :
// чисто виртуальная функция
виртуальный двойной Гетария ( ) '=' 0 ;

частный :
двойной длина ; // Длина комнаты
двойной Ширина ; // Ширина комнаты
} ;

Что такое абстрактный класс

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



Рассмотрим следующий пример, в котором родительский класс предоставляет интерфейс базовому классу, чтобы базовый класс мог применить чистую виртуальную функцию с именем получитьОбласть() . Два разных класса используют одно и то же получитьОбласть() функцию, но вывод для обоих случаев будет разным.





#include <иопоток>
с использованием пространство имен станд. ;
сорт Форма
{
публичный :
виртуальный инт Гетария ( ) '=' 0 ;
пустота setWidth ( инт с )
{
ширина '=' с ;
}

пустота setLength ( инт 1-й )
{
длина '=' 1-й ;
}

защищенный :
инт ширина ;
инт длина ;
} ;

сорт Прямоугольник : публичный Форма
{
публичный : инт Гетария ( )
{
возвращаться ( ширина * длина ) ;
}
} ;

сорт Треугольник : публичный Форма
{
публичный : инт Гетария ( )
{
возвращаться ( ширина * длина ) / 2 ;
}
} ;

инт основной ( пустота )
{
Прямоугольник R ;
Треугольник Т ;
Р. setWidth ( 9 ) ;
Р. setLength ( 5 ) ;
cout << 'Площадь прямоугольника:' << Р. Гетария ( ) << конец ;
Т. setWidth ( 9 ) ;
Т. setLength ( 5 ) ;
cout << 'Площадь треугольника:' << Т. Гетария ( ) << конец ;
возвращаться 0 ;
}

Выход



Важность интерфейсов

Любой класс, производный от чистого абстрактного класса (интерфейса), всегда должен реализовывать каждый из методов базового класса, то есть интерфейса. Указатели интерфейса могут быть переданы как функциям, так и классам, что позволяет нам вызывать функции производного класса оттуда же.

Каковы правила использования интерфейсов

Существуют следующие правила, которым должны следовать пользователи при использовании интерфейсов в C++:

  • Объявляйте только чистые виртуальные функции.
  • Присваивается только 0 чисто виртуальным функциям.
  • Не создавайте интерфейс классов.
  • Используя ссылку на базовый абстрактный класс, мы можем создать указатель на экземпляр производного класса.

В следующем коде интерфейс линуксинт , например, абстрактный класс был создан с использованием чисто виртуального метода, а его функция применена в дочернем классе, и мы вызвали метод возвращаемая строка () метод в основной функции, следуя правилам интерфейса.

#include <иопоток>
#include <иопоток>
#include <строка>
с использованием пространство имен станд. ;

сорт линуксинт
{
публичный :
виртуальный строка returnString ( ) '=' 0 ;
} ;
сорт ребенок : публичный линуксинт
{
публичный :
строка returnString ( )
{
возвращаться 'Привет, линуксинт' ;
}
} ;
инт основной ( )
{
дочерний дочерний_объект ;
линуксинт * пнтр ;
пнтр '=' & дочерний_объект ;
cout < строка возврата ( ) ;
возвращаться 0 ;
}

Выход

Заключение

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