小编use*_*497的帖子

如何将Derived对象添加到unique_ptr的向量中

如何将不同的派生对象添加到unique_ptr的向量上.使用指针向量我将创建项目然后一个基指针指向对象并传递要添加的指针,但make_unique dos不接受指针,我不想为每种类型的派生objs制作重载函数.

class Base{...};

class Item:public Base{...};

Add_Item(Base* thing)
{   
    vec.push_back(thing);
}

//Problem with this is i have multiple derived objs and would rather have 1 Add_Item instead of multiple Add_Item functions.(if possible)
Add_Item(Item thing)
{   //this runs,but i lose anything that was in Item class
    vec.push_back(make_unique<Base>(thing));
}
Run Code Online (Sandbox Code Playgroud)

/ ----------------------------------

跟进问题,你能在另一个内部找到unique_ptr的向量吗?我试过这个,(你们两个人都给我看过,模板Add_Item函数和项目Add_Item函数).但都产生了错误.

class Item: public Item
{  vector<unique_ptr<Base>>inv }

Item bag;
Item n_bag;
bag.Add_Item<I>(n_bag);
Run Code Online (Sandbox Code Playgroud)

跟进跟进,没有你不能,任何建议使用什么样的智能指针

c++ pointers vector unique-ptr

3
推荐指数
1
解决办法
3021
查看次数

标签 统计

c++ ×1

pointers ×1

unique-ptr ×1

vector ×1