C++繼承機(jī)制能實(shí)現(xiàn)虛函數(shù)嗎

c++
小樊
81
2024-11-08 23:46:25

是的,C++的繼承機(jī)制可以實(shí)現(xiàn)虛函數(shù)。虛函數(shù)是在基類中聲明的,可以在派生類中被重寫(override)。當(dāng)使用基類指針或引用調(diào)用虛函數(shù)時(shí),會(huì)根據(jù)指針或引用指向的實(shí)際對(duì)象類型動(dòng)態(tài)地調(diào)用對(duì)應(yīng)的派生類中的虛函數(shù)。這就是動(dòng)態(tài)綁定或多態(tài)的概念。

以下是一個(gè)簡(jiǎn)單的示例:

#include <iostream>

class Base {
public:
    virtual void print() {
        std::cout << "Base class print function" << std::endl;
    }
};

class Derived : public Base {
public:
    void print() override {
        std::cout << "Derived class print function" << std::endl;
    }
};

int main() {
    Base* basePtr = new Derived();
    basePtr->print(); // 輸出 "Derived class print function"
    delete basePtr;
    return 0;
}

在這個(gè)示例中,Base 類中的 print 函數(shù)被聲明為虛函數(shù),Derived 類重寫了這個(gè)函數(shù)。在 main 函數(shù)中,我們使用基類指針 basePtr 指向派生類對(duì)象,并調(diào)用 print 函數(shù)。盡管指針指向的是基類對(duì)象,但實(shí)際調(diào)用的是派生類中的 print 函數(shù),這就是動(dòng)態(tài)綁定的體現(xiàn)。

0