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

目录
相关文章
|
5月前
|
C++
C++一分钟之-虚函数与抽象类
【6月更文挑战第21天】在C++中,虚函数与抽象类是多态的基础,增进类间耦合与灵活性。虚函数实现动态绑定,抽象类定义不可实例化的接口。关键点包括:记得使用`virtual`,避免滥用虚函数,确保派生类实现纯虚函数。抽象类不能直接实例化,派生类必须实现所有纯虚函数。通过实例代码学习和实践,能更好地掌握这些概念以优化代码设计。
50 2
|
6月前
|
C++
C++程序中的纯虚函数
C++程序中的纯虚函数
46 0
|
6月前
|
C++
C++程序中的抽象类
C++程序中的抽象类
69 0
|
6月前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
62 0
|
6月前
|
存储
抽象类为什么有抽象方法?
抽象类为什么有抽象方法?
|
11月前
纯虚函数和抽象类
纯虚函数和抽象类
51 0
C++的纯虚函数和抽象类
在C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。 最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。原因很明显,纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。抽象类通常是作为基类,让派生类去实现纯虚函数。派生类必须实现纯虚函数才能被实例化。纯虚函数使用举例:
|
程序员 C# 索引
知识回顾:抽象类与抽象方法
知识回顾:抽象类与抽象方法
109 0
抽象类和抽象方法
抽象方法abstract public void Func();声明了abstract 不能有函数体 声明了virtual可以有函数体
524 0