91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
乐都县| 屯留县| 梅河口市| 潢川县| 蒙自县| 九寨沟县| 平武县| 郴州市| 乌拉特中旗| 博爱县| 黔东| 仁化县| 河北区| 嘉定区| 龙门县| 沙坪坝区| 德令哈市| 江西省| 咸丰县| 宜章县| 招远市| 雷波县| 花垣县| 枣庄市| 平阳县| 平乡县| 闻喜县| 普兰县| 堆龙德庆县| 乃东县| 丰都县| 新河县| 大邑县| 策勒县| 陇西县| 宜昌市| 育儿| 玉山县| 康保县| 永城市| 金堂县|