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`是抽象类,所以它不能被实例化,只能被继承。通过这种方式,我们可以定义一个接口规范,让派生类来实现这个接口规范。这种方式可以让我们的代码更加灵活和可扩展,因为它允许我们在不知道对象的确切类型的情况下使用对象。

目录
相关文章
|
6月前
|
C++
52 C++ - 纯虚函数和多继承
52 C++ - 纯虚函数和多继承
15 0
|
4天前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
10 0
|
4天前
|
存储
抽象类为什么有抽象方法?
抽象类为什么有抽象方法?
|
4天前
|
C++
C++面向对象编程中的 纯虚函数 与 抽象类
C++面向对象编程中的 纯虚函数 与 抽象类
|
5月前
纯虚函数和抽象类
纯虚函数和抽象类
29 0
|
8月前
|
C++
C++的纯虚函数和抽象类
在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。抽象类通常是作为基类,让派生类去实现纯虚函数。派生类必须实现纯虚函数才能被实例化。纯虚函数使用举例:
43 0
虚函数,虚析构函数,纯虚函数,抽象类
🐰虚函数 🌸虚函数的定义和作用 🌸虚函数的注意事项 🐰虚析构函数 🐰 纯虚函数 🐰抽象类
|
程序员 C# 索引
知识回顾:抽象类与抽象方法
知识回顾:抽象类与抽象方法
91 0
抽象类和抽象方法
抽象方法abstract public void Func();声明了abstract 不能有函数体 声明了virtual可以有函数体
507 0
|
C++
抽象类、抽象函数/抽象方法详解
抽象类运用 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助...
1240 0