![](/img/trans.png)
[英]“~__vector_base() ” having an excess run time in Wasm as well as an abort error. Cannot find the error
[英]vector_base inheritance vs composition
簡短問題:
有沒有理由為什么C ++ STL實現使用vector_base
結構/類(處理資源和分配器)作為std::vector
的基類而不是使用組合 ?
更長版本:
在我的“追求”中,為了提高我對C ++的了解,我一直在嘗試重新實現一個Vector
類,主要是std::
compliant。 我想我已經理解為什么使用分配器是明智的,為什么你真的想要在一個單獨的類/結構(RAII和所有那些)中的所有內存處理但是我不明白為什么我們想要std::vector
從該類繼承而不是將其作為私有成員。 例如,LLVM和gcc都使用繼承。 另一方面,我發現構造函數和賦值運算符(尤其是move
-types)使用組合更容易處理。
我只是暴露了我對語言的膚淺知識嗎?
作為一個例子,我搜索了一些教科書,我發現Stroustroup的書有他的“模擬重新實現”標准的不同版本(只是為了讓我更加困惑!)與他2013年的書“The C ++ Programming language,4th ed。”。 使用作文和他的2014年“編程:原則與實踐,第2版”。 使用繼承!
任何人都可以幫助我解決一些問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.