首頁 > 後端開發 > C++ > 你能用 C 語言創建抽象類別的向量嗎?

你能用 C 語言創建抽象類別的向量嗎?

Mary-Kate Olsen
發布: 2024-12-02 07:41:14
原創
418 人瀏覽過

Can You Create a Vector of Abstract Classes in C  ?

C 中抽象類別的向量:入門

在C 中,抽象類別提供了一種無需實作即可定義介面的方法,允許衍生類別繼承並實施特定的行為。然而,與 C# 中的介面可以直接實例化不同,C 中的抽象類別則不能。

問題

考慮以下 C 範例:

這個抽象類別表示一個具有單一方法 IamFunny 的介面。現在,假設我們要建立一個實現此介面的物件向量,例如:

此程式碼將導致以下編譯器錯誤:

此錯誤發生這種情況是因為C 不允許實例化抽象類別。

A解決方法

一種解決方法是將抽象類別替換為具體類,該類別在嘗試呼叫未實現的方法時會引發異常:

雖然此解決方法允許向量實例化,但它引入了一個潛在的陷阱:嘗試存取IFunnyInterface物件的方法的程式碼將需要處理

替代解決方案

更優雅的解決方案是使用指向抽象類別的指標向量:

這種方法允許用於多態行為並避免直接值儲存可能發生的物件切片問題。

透過了解在 C 中抽象類別實例化,您可以採用適當的解決方法或使用替代方案來在程式碼中實現所需的功能。

以上是你能用 C 語言創建抽象類別的向量嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板