溫馨提示×

類方法在C++中的繼承與多態應用

c++
小樊
98
2024-08-27 13:40:26
欄目: 編程語言

在C++中,類方法的繼承和多態主要通過基類(父類)和派生類(子類)之間的關系來實現

  1. 繼承:

繼承是面向對象編程的一個重要特性,它允許一個類(派生類)繼承另一個類(基類)的屬性和方法。這樣,派生類可以重用基類的代碼,同時還可以添加或覆蓋基類的方法。

#include<iostream>

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

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

int main() {
    Base *base = new Base();
    base->print(); // 輸出 "Base class method"

    Derived *derived = new Derived();
    derived->print(); // 輸出 "Derived class method"

    Base *base_ptr = new Derived();
    base_ptr->print(); // 輸出 "Base class method",因為print()方法不是虛函數

    delete base;
    delete derived;
    delete base_ptr;

    return 0;
}
  1. 多態:

多態是指允許使用基類指針或引用來操作派生類對象。為了實現多態,我們需要將基類的方法聲明為虛函數(virtual)。這樣,當通過基類指針或引用調用該方法時,會根據實際對象的類型來調用相應的方法。

#include<iostream>

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

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

int main() {
    Base *base = new Base();
    base->print(); // 輸出 "Base class method"

    Derived *derived = new Derived();
    derived->print(); // 輸出 "Derived class method"

    Base *base_ptr = new Derived();
    base_ptr->print(); // 輸出 "Derived class method",因為print()方法是虛函數

    delete base;
    delete derived;
    delete base_ptr;

    return 0;
}

在這個例子中,我們將Base類的print()方法聲明為虛函數。當我們通過Base類指針調用print()方法時,如果實際對象是Derived類的實例,那么將調用Derived類的print()方法。這就是多態的體現。

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