【发布时间】:2015-10-06 21:39:29
【问题描述】:
我有一个base class 和一个priority_queue,如下所示:
class base
{
//...
std::priority_queue<std::shared_ptr<Obj>, std::vector<std::shared_ptr<Obj>>, obj_less> obj_queue;
//...
}
在我的Obj class 上,我有一个方法可以将此对象推入priority_queue:
void Obj::set ()
{
BaseServer& myObj = BaseFactory::getBase();
myObj.set(this); //<------ won't compile :(
}
这个set() 将在我的base class 上调用set():
void base::set(const Obj& o)
{
obj_queue.push(o);
}
我想使用this 来获取指向同一个Obj 的指针,并将其推入我的vector 中,在我的priority_queue 中......
但它甚至不会编译,我有点迷茫......
任何想法我在这里缺少什么?
【问题讨论】:
-
您可能需要
myObj.set(*this);或void base::set(const Obj *o)。 -
将您的错误添加到问题中
标签: c++ c++11 vector shared-ptr priority-queue