溫馨提示×

如何在 C++純虛類中定義函數

c++
小樊
107
2024-08-02 20:36:19
欄目: 編程語言

在 C++ 中,可以在純虛類中定義函數的實現。純虛類是包含至少一個純虛函數的抽象類,而純虛函數是在基類中聲明但沒有實現的虛函數。

以下是在 C++ 中在純虛類中定義函數的方法:

#include <iostream>

class AbstractClass {
public:
    // 純虛函數
    virtual void pureVirtualFunction() = 0;

    // 定義一個普通函數
    void normalFunction() {
        std::cout << "This is a normal function in the abstract class" << std::endl;
    }
};

// 在純虛類外部實現純虛函數
void AbstractClass::pureVirtualFunction() {
    std::cout << "This is the implementation of the pure virtual function" << std::endl;
}

int main() {
    AbstractClass* obj = nullptr;
    // AbstractClass obj; // 錯誤,抽象類不能被實例化

    // 正確,通過繼承實現純虛函數
    class ConcreteClass : public AbstractClass {
    public:
        // 實現純虛函數
        void pureVirtualFunction() override {
            std::cout << "This is the implementation of the pure virtual function in the concrete class" << std::endl;
        }
    };

    ConcreteClass concreteObj;
    obj = &concreteObj;

    // 調用純虛函數和普通函數
    obj->pureVirtualFunction();
    obj->normalFunction();

    return 0;
}

在上面的示例中,我們在抽象類 AbstractClass 中定義了一個普通函數 normalFunction 的實現。然后,在抽象類外部實現了純虛函數 pureVirtualFunction。最后,在一個具體的類 ConcreteClass 中實現了純虛函數。通過繼承 AbstractClass,我們可以創建一個具體類對象,并調用純虛函數和普通函數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女