我正在學習C++並閱讀C++的一本書。C++中的虛擬類的向量
第9.2.1節中,這本書說
vector<Shape> vs; # is bad,
vector<Shape*> vps; # is better, and
vector<unique_ptr<Shape>> vups; # is OK.
我的問題是,爲什麼 「矢量<形狀> VS」;不被接受,並且「矢量< unique_ptr <形狀> > vups;」是最好的?你能澄清一下嗎?
這裏的形狀類是一個虛擬類。在前一章中,Circle類和Triangle類已被定義爲從Shape派生。 Circle類對象和Triangle類對象旨在存儲在容器中。