千锋教育-做有情怀、有良心、有品质的职业教育机构

纯虚函数和抽象类详解

来源:千锋教育
发布时间:2023-11-19 06:24:47
分享

千锋教育品牌logo

纯虚函数和抽象类是C++中实现多态性的重要概念。以下是对纯虚函数和抽象类的详细解释:

纯虚函数(Pure Virtual Function):

    纯虚函数是在基类中声明的没有实际实现的虚函数。

    通过将函数声明为纯虚函数,可以使基类成为抽象类,这意味着它不能直接实例化对象。

    子类必须实现纯虚函数,否则子类也将成为抽象类。

    声明纯虚函数的语法是在函数声明末尾加上 “= 0″:virtual void functionName() = 0;

    示例:

class Shape {
pubpc:
    virtual double area() const = 0; // 纯虚函数
};

class Rectangle : pubpc Shape {
private:
    double length;
    double width;

pubpc:
    Rectangle(double l, double w): length(l), width(w) {}

    double area() const override {
        return length * width;
    }
};

int main() {
    Shape* shapePtr; // 合法,使用基类指针

    // Shape shape; // 错误,抽象类无法实例化对象

    Rectangle rectangle(5, 3);
    shapePtr = &rectangle;
    cout << "Area: " << shapePtr->area() << endl;

    return 0;
}

抽象类(Abstract Class):

    抽象类是包含一个或多个纯虚函数的类,无法直接实例化对象。

    抽象类用于定义接口和创建一组相关的类,并确保派生类实现了基类的纯虚函数。

    可以将抽象类看作是定义了一系列行为但没有具体实现的蓝图。

    示例:

class Animal {
pubpc:
    virtual void makeSound() const = 0; // 纯虚函数

    void sleep() const {
        cout << "Zzz..." << endl;
    }
};

class Dog : pubpc Animal {
pubpc:
    void makeSound() const override {
        cout << "Woof!" << endl;
    }
};

int main() {
    Animal* animalPtr; // 合法,使用基类指针

    // Animal animal; // 错误,抽象类无法实例化对象

    Dog dog;
    animalPtr = &dog;
    animalPtr->makeSound();
    animalPtr->sleep();

    return 0;
}

通过纯虚函数和抽象类,可以实现多态性,允许在运行时根据实际对象类型调用相应的函数实现。抽象类定义了一组规范和行为,而派生类则提供了具体的实现。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python中int()函数的作用是什么 Python中的int()函数是用于将指定的值转换为整数。它可以将字符串、浮点数或其他可转换为整数的值转换为整数类型。int()函数的作用是非常重要的,它在编程中经常被使用,尤其是在处理用户输入、数据
  • int函数python作用举例 int函数是Python中的一个内置函数,它的作用是将一个数值或字符串转换为整数。在Python中,整数是一种基本的数据类型,它可以用来表示整数值,比如1、2、3等等。int函数可以将其他类型的数据转
  • sum函数python字典 Python中的字典是一种非常有用的数据类型,可以用于存储键值对。而sum函数则是Python中的一个内置函数,可以用于对序列进行求和操作。那么,将这两者结合起来,就可以实现对字典中所有值的求和操作。
  • python中set() Python中的set()是一种无序且不重复的集合数据类型,它是Python中常用的内置数据类型之一。set()可以用来进行集合运算,比如并集、交集、差集等操作。set()还可以用来去重,将一个列表或
  • python中end t Python中的end tPython是一门高级编程语言,它简洁、易读、易学,而且功能强大。在Python中,有一个非常有用的功能,那就是end t。什么是end t?在Python中,end
  • python中values用法 Python中values()是一个字典方法,用于返回字典中所有的值。values()方法返回一个由字典中所有值组成的列表,列表中的值按照字典中键的顺序排列。values()方法的语法如下:dic