В C++ ключевого слова «абстрактный» не существует. Однако C++ поддерживает абстрактные классы и чисто виртуальные функции, которые используются для достижения абстракции и создания интерфейсов. Абстрактные классы — это классы, экземпляры которых не могут быть созданы и которые предназначены для наследования производными классами. Они могут иметь как обычные функции-члены, так и чисто виртуальные функции.
Чтобы создать абстрактный класс в C++, вам необходимо объявить внутри класса хотя бы одну чисто виртуальную функцию. Чистая виртуальная функция объявляется путем добавления синтаксиса «= 0» к объявлению функции в определении класса. Вот пример:
class AbstractClass {
public:
virtual void pureVirtualFunction() = 0; // Pure virtual function
void regularFunction() {
// Regular function implementation
}
};
В этом примере pureVirtualFunction()
является чисто виртуальной функцией, что делает AbstractClass
абстрактным классом. Наличие чистой виртуальной функции в классе препятствует созданию ее экземпляра. Однако для создания экземпляров производные классы, наследуемые от AbstractClass
, должны предоставлять реализацию чисто виртуальной функции.
Вот пример производного класса, который наследуется от AbstractClass
и предоставляет реализацию чистой виртуальной функции:
class DerivedClass : public AbstractClass {
public:
void pureVirtualFunction() override {
// Implementation of the pure virtual function
}
};
Предоставляя реализацию чистой виртуальной функции pureVirtualFunction()
в производном классе DerivedClass
, вы можете создавать экземпляры объектов DerivedClass
.п>