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

溫馨提示×

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
博野县| 武乡县| 如东县| 青神县| 赤城县| 西充县| 社旗县| 宝山区| 彰化市| 贵州省| 南昌市| 汽车| 柘荣县| 东乌珠穆沁旗| 望奎县| 宝兴县| 清涧县| 当涂县| 城固县| 连州市| 永清县| 霸州市| 凤阳县| 集安市| 衡阳市| 东莞市| 郎溪县| 新密市| 云龙县| 高密市| 化州市| 双流县| 吉水县| 孝昌县| 桐乡市| 太仆寺旗| 怀仁县| 固阳县| 墨玉县| 沅陵县| 昌图县|