Hum*_*awi 4 c++ polymorphism abstract-class vector c++11
我是从这些问题中得出的:
他们都建议我应该使用指针或智能指针.
据我所知,数据是动态分配的,std::vector这意味着内部有指针std::vector.那么为什么我不能直接使用抽象类呢?为什么我必须使用指针(我指定的那个)指针(内部)才能使用抽象类std::vector.我知道有些功能std::vector::resize不起作用.然而,std::vector::reserve和std::back_inserter将解决这个问题.
据我所知,数据是在std :: vector中动态分配的,这意味着在内部有指针
std::vector
那是绝对正确的.但是,指针(实际上,非常常见的实现中的两个指针之一)指向一个大小相同的元素数组T,而不是单个元素T或其子类型.本质上,指针用于表示数组,而不是指代类或其子类.
这就是为什么你需要一个额外的间接级别 - 数组的元素T[]不能存储T没有对象切片的子类.
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |