中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++中dynamic_cast的用法是什么

c++
小億
86
2023-12-11 09:25:41
欄目: 編程語言

dynamic_cast是C++中的一種類型轉換操作符,用于在繼承關系中進行類型轉換。它用于將一個指向基類的指針或引用轉換為指向派生類的指針或引用。

語法如下: dynamic_cast<目標類型>(表達式)

使用dynamic_cast時,必須滿足以下條件:

  1. 源類型必須是多態類型,即需要帶有虛函數的類或者類的指針/引用;
  2. 目標類型必須是源類型的公有派生類或者基類。

dynamic_cast的作用是在運行時檢查類型轉換的合法性,如果轉換合法,則返回指向目標類型的指針或引用;如果轉換不合法,則返回nullptr(對于指針)或拋出std::bad_cast異常(對于引用)。

示例:

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

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

int main() {
    Base* basePtr = new Derived();
    
    Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
    if (derivedPtr != nullptr) {
        derivedPtr->print(); // 輸出:Derived class
    }
    
    delete basePtr;
    return 0;
}

在上述示例中,我們將Derived類的對象指針賦值給了Base類的指針basePtr。然后使用dynamic_cast將basePtr轉換為Derived類的指針,如果轉換成功,則調用Derived類的print函數輸出"Derived class"。

0
湘西| 万宁市| 贞丰县| 黑山县| 通许县| 平顶山市| 建水县| 阿勒泰市| 永仁县| 石狮市| 长泰县| 福安市| 台北市| 巩义市| 吉隆县| 陆丰市| 新营市| 栖霞市| 北川| 静安区| 汝南县| 花莲县| 南汇区| 黄石市| 湘潭市| 雷波县| 镇远县| 延安市| 永靖县| 江孜县| 岳池县| 昆明市| 双牌县| 永新县| 惠安县| 阜城县| 西吉县| 辽宁省| 剑河县| 徐州市| 卢氏县|