56纯虚函数与抽象类

简介: 56纯虚函数与抽象类

C++入门——60s从0到1

纯虚函数与抽象类

 

在C++中,纯虚函数是一种特殊的成员函数,它没有函数体,只有函数声明。纯虚函数的声明方式是在函数声明后面加上`=0`。纯虚函数的目的是让派生类必须实现这个方法,否则它们不能成为这个抽象类的子类。

 

抽象类是一种特殊的类,它至少包含一个纯虚函数。抽象类不能被实例化,只能被继承。抽象类的作用是提供一个接口规范,让派生类实现这个接口规范。

 

下面是一个简单的示例代码,演示了如何定义和使用抽象类和纯虚函数:

 

#include <iostream>
using namespace std;
 
// 抽象类 Shape
class Shape {
public:
    virtual double area() = 0; // 纯虚函数
};
 
// 派生类 Rectangle
class Rectangle: public Shape {
public:
    double width;
    double height;
    Rectangle(double w, double h): width(w), height(h) {}
    double area() override { return width * height; } // 重写虚函数
};
 
// 派生类 Circle
class Circle: public Shape {
public:
    double radius;
    Circle(double r): radius(r) {}
    double area() override { return 3.14 * radius * radius; } // 重写虚函数
};

 

在上面的例子中,我们定义了一个抽象基类`Shape`,它包含一个纯虚函数`area()`。然后我们定义了两个派生类`Rectangle`和`Circle`,它们都继承自`Shape`并实现了`area()`函数。由于`Shape`是抽象类,所以它不能被实例化,只能被继承。通过这种方式,我们可以定义一个接口规范,让派生类来实现这个接口规范。这种方式可以让我们的代码更加灵活和可扩展,因为它允许我们在不知道对象的确切类型的情况下使用对象。

目录
相关文章
|
1月前
抽象类
如何使用如何使用抽象类和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法 4.创建子类对象进行使用 关于抽象类: 1.抽象类不能创建对象,只能创建器非抽象的子类对象 2.抽象类中,可以有构造方法,是子类创建对象时,初始化父类成员用的。 3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 4.抽象类的子类,必须重新抽象父类中的所有抽象方法和抽象方法: 1.不能直接创建new抽象类对象。 2.必须用一个子类来继承抽象父类 3.子类必须覆盖重写抽象父类当中所有的抽象方法
14 0
|
4月前
纯虚函数和抽象类
纯虚函数和抽象类
29 0
|
1月前
|
存储 程序员 C++
4数据类型
4数据类型
14 1
|
7月前
|
C++
C++的纯虚函数和抽象类
在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。抽象类通常是作为基类,让派生类去实现纯虚函数。派生类必须实现纯虚函数才能被实例化。纯虚函数使用举例:
42 0
|
6月前
|
安全 Java API
Java的第八篇文章——Object类、String类和StringBuilder类
Java的第八篇文章——Object类、String类和StringBuilder类
|
1月前
|
安全 编译器 C++
5常量
5常量
15 1
|
1月前
|
存储 C++
63异常处理
63异常处理
11 0
|
4月前
|
前端开发
CSS color中常用英文色值
CSS color中常用英文色值