溫馨提示×

C++成員函數指針在多態中如何使用

c++
小樊
98
2024-06-20 00:54:16
欄目: 編程語言

在C++中,成員函數指針可以用于實現多態性。多態性是面向對象編程的一個重要特性,允許不同的類對象對同一個消息做出不同的響應。使用成員函數指針可以在運行時動態地選擇要調用的函數,從而實現多態性。

下面是一個簡單的例子,演示了如何使用成員函數指針實現多態性:

#include <iostream>

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

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

int main() {
    Base baseObj;
    Derived derivedObj;

    void (Base::*ptr)() = &Base::print; // 定義一個指向Base類的成員函數的指針

    (baseObj.*ptr)(); // 調用Base類的print函數
    (derivedObj.*ptr)(); // 調用Derived類的print函數

    return 0;
}

在上面的例子中,我們定義了一個基類Base和一個派生類Derived。Base類中有一個虛擬函數print,Derived類重寫了這個函數。然后我們在主函數中定義了一個指向Base類的成員函數print的指針ptr,通過該指針可以在運行時動態地選擇要調用的函數。

通過上面的例子,可以看到成員函數指針在多態性中的應用。它可以讓我們在運行時根據對象的實際類型調用不同的函數,實現了多態性的特性。

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