c语言编程笔录

首页 >   > 笔记大全

笔记大全

c语言中stract函数的意思

更新时间:2023-10-27

介绍

C语言中的`abstract`函数是一种在函数定义中使用的修饰符。它的作用是告诉编译器,当前的函数是一个纯虚函数,在类的继承关系中,将在派生类中被具体实现。换句话说,派生类必须实现该函数,而基类中的纯虚函数只是定义了一个接口,没有具体的实现。`abstract`关键字只能用于虚函数,而且它必须在函数的声明和定义中都使用。

示例1:使用abstract函数

下面是一个简单的示例,展示了如何使用`abstract`函数:

#include 

// 基类
struct Shape {
    // 定义一个纯虚函数
    virtual void draw() abstract=0;
};

// 派生类
struct Circle : Shape {
    // 实现纯虚函数
    void draw() {
        printf("Drawing a Circle.\n");
    }
};

int main() {
    Circle circle;
    circle.draw();
    return 0;
}

示例2:使用abstract函数和类的继承

在下面的示例中,我们展示了如何在类的继承关系中使用`abstract`函数:

#include 

// 基类
struct Shape {
    // 定义一个纯虚函数
    virtual void draw() abstract=0;
};

// 派生类1
struct Circle : Shape {
    // 实现纯虚函数
    void draw() {
        printf("Drawing a Circle.\n");
    }
};

// 派生类2
struct Rectangle : Shape {
    // 实现纯虚函数
    void draw() {
        printf("Drawing a Rectangle.\n");
    }
};

int main() {
    Circle circle;
    Rectangle rectangle;
    
    // 通过基类指针调用纯虚函数
    Shape* shape1=&circle;
    Shape* shape2=&rectangle;
    
    shape1->draw();
    shape2->draw();
    
    return 0;
}

总结

`abstract`关键字只能用于虚函数,用于声明一个纯虚函数。纯虚函数是类的接口,没有具体的实现,需要在派生类中实现。通过使用`abstract`关键字,可以告诉编译器该函数是一个纯虚函数,派生类必须实现该函数。