溫馨提示×

c++多態的實現方式有哪些

c++
小億
163
2024-06-05 16:30:27
欄目: 編程語言

在C++中,多態可以通過虛函數和純虛函數來實現。具體有以下幾種方式:

  1. 虛函數(virtual function):在基類中聲明一個虛函數,派生類可以重寫這個虛函數。當通過基類指針或引用調用這個虛函數時,實際執行的是派生類的版本。這種方式實現的多態稱為動態多態。
class Base {
public:
    virtual void print() {
        cout << "Base class print function." << endl;
    }
};

class Derived : public Base {
public:
    void print() override {
        cout << "Derived class print function." << endl;
    }
};
  1. 純虛函數(pure virtual function):在基類中聲明一個純虛函數,派生類必須實現這個純虛函數?;悓ο蟛荒鼙粚嵗?,只能作為接口使用。這種方式實現的多態稱為靜態多態。
class Base {
public:
    virtual void print() = 0;
};

class Derived : public Base {
public:
    void print() override {
        cout << "Derived class print function." << endl;
    }
};
  1. 函數指針:可以使用函數指針來實現多態,通過函數指針動態調用不同的函數。
void print(Base *obj) {
    obj->print();
}

Base *basePtr = new Derived();
print(basePtr);
  1. 模板(template):可以使用模板來實現多態,通過模板參數動態調用不同的函數。
template<typename T>
void print(T *obj) {
    obj->print();
}

Base *basePtr = new Derived();
print(basePtr);

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