C++ 什么是抽象类

C++ 什么是抽象类

根据定义,C++的抽象类必须包含至少一个纯虚函数。或者说,含有无定义函数的函数。因为子类本身会成为一个抽象类,抽象类的子类必须指定纯虚函数。

抽象类用于表示广义的概念,然后可以使用它们来构建更具体的类。不能创建抽象类类型的对象。然而,可以使用指针和引用来操作抽象类类型。在定义抽象类时,至少要定义一个纯虚函数。可以使用纯虚函数的语法(= 0)来声明一个虚函数。

考虑虚函数的示例。虽然类的目标是为形状提供基本功能,但形状类型的元素太过于通用,无法提供太多的价值。所以,形状是一个很好的抽象类的候选者。

示例代码

C-lass classname //abstract class
{
//data members                                                        
public:
//pure virtual function
/* Other members */
};

抽象类的特点是什么

尽管抽象类类型不能从头开始创建,但可以对其进行指针和引用。除了常规函数和变量外,抽象类中可以存在纯虚函数。向上转换是抽象类的主要用途,它允许派生类访问其接口。从抽象类派生的类必须实现所有纯虚函数。

抽象类的限制有哪些

以下用法不允许使用抽象类:

  1. 故意进行的转换
  2. 成员数据或变量
  3. 函数输出的类型
  4. 讨论形式

当在抽象类的本机代码函数Object()中明确或间接调用纯虚方法时,不清楚会发生什么。相反,抽象群组的构造函数和析构函数可以调用其他成员函数。

尽管允许抽象类的构造函数调用其他成员函数,但如果它们直接或间接调用纯虚函数,则结果是不确定的。但是等等!纯虚函数到底是什么?

让我们先来研究虚函数,以便理解纯虚函数。

从基类声明中被派生类重新定义的成员函数被称为虚函数。

没有定义或逻辑的虚函数被称为抽象函数或纯虚函数。在声明时,将其赋值为0。

在日常生活中抽象有多重要

自动取款机就是日常生活中的另一个抽象示例。然而,我们都使用自动取款机来执行诸如取款、转账、生成小额对账单等任务,但无法访问自动取款机的内部数据。数据保护技术如数据抽象可以防止未经授权的访问数据。

抽象类和接口的区别是什么

接口 抽象类
一个接口只能继承另一个接口。 使用Extended关键字,抽象类可以强制实现接口并继承自另一个类。
必须使用implements关键字来实现一个接口。 使用extends关键字从抽象类继承。

抽象类的示例是什么

考虑开发一个计算器,输入形状后输出其周长。考虑使用何种编程类型来创建这样一个计算器。通过在Shape类中创建不同的函数,您可以从一些基本形状开始并硬编码周长。

以下是该类的可能形式:

抽象类的示例是什么

考虑开发一个计算器,输入形状后输出其周长。考虑使用何种编程类型来创建这样一个计算器。通过在Shape类中创建不同的函数,您可以从一些基本形状开始并硬编码周长。

以下是该类的可能形式:

class Shape {
  public:
// All the functions of both square and rectangle are clubbed together in a single class.
void width(int w) {
shape_width = w;
}
void height(int h) {
shape_height = h;
}
int areaOfSquare(int s) {
return 4 * s;
}
int areaOfRectange(int l, int b) {
return (l * b);
}
protected:
int shape_width;
int shape_height;
};
int main (){
shapes R;
R.width(5);
R.height(10);
cout<<"The area of rectangle is"<

输出:

C++ 什么是抽象类

尽管OOP建议我们应该尽量遵循现实世界的推理,但这仍然能够运行。因此,我们可以创建一个父类Shape,子类Square和Rectangle作为子类。如果以后想添加新内容,可以在子类中进行,这样可以使程序更容易维护。我们必须使用抽象类来实现此功能。在C++中,抽象类至少需要一个纯虚函数。为了防止子类变成抽象类,继承抽象类的类必须指定纯虚函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程