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

溫馨提示×

C++中dynamic_cast怎么使用

小億
94
2023-07-11 14:40:57
欄目: 編程語言

在C++中,dynamic_cast用于在運行時進行類型轉換。它可以將指向基類的指針或引用轉換為指向派生類的指針或引用。

使用dynamic_cast的語法如下:

dynamic_cast<目標類型>(表達式)

其中,目標類型是要轉換的類型,表達式是要轉換的指針或引用。

下面是一些使用dynamic_cast的示例:

class Base {
public:
virtual void print() {
cout << "This is the base class." << endl;
}
};
class Derived : public Base {
public:
void print() override {
cout << "This is the derived class." << endl;
}
};
int main() {
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
if (derivedPtr) {
derivedPtr->print();  // 輸出 "This is the derived class."
}
delete basePtr;
return 0;
}

在上面的示例中,basePtr是一個指向基類對象的指針,我們使用dynamic_cast<Derived*>(basePtr)將其轉換為指向派生類對象的指針。由于basePtr指向的實際對象是派生類對象,所以轉換成功,dynamic_cast返回了指向派生類對象的指針。我們可以使用該指針調用派生類的成員函數。

如果轉換失敗,即basePtr指向的實際對象不是派生類對象,dynamic_cast會返回nullptr。因此,在使用dynamic_cast進行類型轉換之前,我們應該先檢查轉換結果是否為nullptr,以避免訪問空指針引發錯誤。

需要注意的是,dynamic_cast只能用于指針或引用類型的轉換,不能用于轉換基本數據類型。此外,被轉換的類型必須是多態類型,即該類型至少包含一個虛函數。

0
阳春市| 建湖县| 上饶县| 江津市| 英吉沙县| 东安县| 龙岩市| 白河县| 确山县| 洪泽县| 田阳县| 延庆县| 景德镇市| 延安市| 德安县| 杂多县| 吴川市| 长宁县| 乌审旗| 汝州市| 湖南省| 特克斯县| 泰兴市| 万山特区| 四川省| 苗栗市| 正蓝旗| 乐清市| 邯郸市| 兰州市| 阿瓦提县| 介休市| 花莲县| 德钦县| 晋宁县| 隆回县| 鄂伦春自治旗| 长子县| 桃源县| 宁城县| 郓城县|