qt中的虚函数、纯虚函数

阅读数:79 评论数:0

跳转到新版页面

分类

C/C++

正文

一、虚函数

在Qt中,虚函数的写法和标准C++中的写法是一样的。虚函数允许在派生类中进行函数重写(override),是实现多态的基础。

1、定义虚函数:在基类中,你需要使用virtual关键字来声明一个虚函数。这表明该函数可以在任何派生类中被重写。

// Base class
class BaseClass {
public:
    virtual void virtualFunction() {
        // 基类的实现
    }
};

2、重写虚函数:在派生类中,你可以重写基类中定义的虚函数。从C++11开始,你可以(并且建议)使用override关键字来明确指出函数是一个重写。

// Derived class
class DerivedClass : public BaseClass {
public:
    void virtualFunction() override {
        // 派生类的实现
    }
};

二、纯虚函数

在C++和Qt中,抽象函数(也称为纯虚函数)是一种必须在派生类中实现的虚函数。如果一个类包含至少一个纯虚函数,那么它就是一个抽象类,不能被实例化。在Qt中,抽象函数的声明和标准C++中的声明方式相同。

要声明一个纯虚函数,你需要在函数声明的末尾添加= 0。这表明没有为该函数提供定义,派生类需要提供具体实现。

1、声明抽象函数:在基类中声明一个或多个纯虚函数。

// Base class
class AbstractClass {
public:
    virtual void abstractFunction() = 0; // 纯虚函数声明
    virtual ~AbstractClass() {} // 提供一个虚析构函数
};

2、实现抽象函数:在派生类中实现基类中声明的纯虚函数。

// Derived class
class ConcreteClass : public AbstractClass {
public:
    void abstractFunction() override { // 实现纯虚函数
        // 派生类的具体实现
    }
};



相关推荐