C 中可透過基底類別指標擷取派生類別異常。利用虛擬函數和try-catch 區塊,我們可以:拋出衍生類別例外使用基底類別指標捕捉它透過刪除基底類別指標自動釋放衍生類別物件
在C 中,異常處理是一種處理錯誤和異常情況的機制。當發生異常時,會拋出異常物件。異常物件儲存有關錯誤的訊息,例如錯誤訊息和發生錯誤的位置。
透過基底類別指標捕獲派生類別異常是一種靈活的方法,可以處理來自派生類別的異常。這是透過使用 try-catch 區塊和虛函數來實現的。 程式碼範例:
假設我們有一個基底類別 Shape 和一個衍生類別 Square。 Shape 類別有一個虛擬函數 GetArea()
,Square 類別覆寫了該函數。 class Shape { public: virtual int GetArea() const = 0; }; class Square : public Shape { public: Square(int side) : side(side) {} int GetArea() const override { return side * side; } private: int side; }; int main() { try { Shape* shape = new Square(5); shape->GetArea(); // 抛出异常 } catch (Shape* base_ptr) { // 捕获 Shape* 指针的基类指针 delete base_ptr; // 确保释放派生类对象 std::cout << "异常捕获成功!" << std::endl; } return 0; }
解釋:
GetArea() 在衍生類別
Square 函數中,我們建立一個
Shape*以上是C++ 技術中的異常處理:如何透過基底類別指標來擷取衍生類別異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!