亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++的dynamic_cast怎么使用

c++
小億
90
2023-12-18 09:09:47
欄目: 編程語言

dynamic_cast是C++中的一種類型轉換操作符,用于將基類指針或引用轉換為派生類指針或引用。其使用方式如下:

  1. dynamic_cast運算符的語法如下:
dynamic_cast<type*>(expression)

其中,type為欲轉換的目標類型,expression為欲轉換的指針或引用。

  1. dynamic_cast的使用規則如下:
  • 當轉換失敗時,返回空指針(對于指針轉換)或拋出std::bad_cast異常(對于引用轉換)。
  • 轉換成功時,返回指向目標類型的指針(對于指針轉換)或引用(對于引用轉換)。
  1. dynamic_cast的使用示例:
#include <iostream>

class Base {
public:
    virtual void showMessage() {
        std::cout << "This is the Base class." << std::endl;
    }
};

class Derived : public Base {
public:
    void showMessage() {
        std::cout << "This is the Derived class." << std::endl;
    }
};

int main() {
    Base* basePtr = new Derived();
    
    // 使用dynamic_cast將基類指針轉換為派生類指針
    Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
    if (derivedPtr != nullptr) {
        derivedPtr->showMessage();  // 輸出: This is the Derived class.
    }
    
    delete basePtr;
    return 0;
}

在上述示例中,Base類是一個基類,Derived類是其派生類。首先,我們創建了一個指向Derived類對象的Base類指針basePtr。然后,使用dynamic_cast將basePtr轉換為Derived類指針derivedPtr。由于basePtr指向的是Derived類對象,所以轉換成功,derivedPtr不為nullptr,可以調用Derived類的成員函數showMessage輸出相應的信息。

需要注意的是,dynamic_cast只能用于具有多態性的類(即含有虛函數的類),否則會導致編譯錯誤。此外,dynamic_cast只能用于指針或引用的轉換,不能用于基本類型的轉換。

0
白水县| 宜川县| 迭部县| 进贤县| 荆门市| 阜新市| 大冶市| 连山| 龙海市| 南木林县| 普兰店市| 潮安县| 渝中区| 灌南县| 台北市| 嘉兴市| 通化县| 赞皇县| 沈丘县| 越西县| 玛沁县| 偏关县| 安义县| 金寨县| 新竹县| 兴义市| 尉氏县| 永胜县| 应城市| 布尔津县| 大关县| 十堰市| 台州市| 革吉县| 济南市| 高邮市| 栾川县| 治多县| 彭泽县| 凤城市| 峡江县|