2017-05-08 86 views
-2

在我的情况下,我有一个std::list<Ort*>,其中Ort是我制作的一个自定义类 ,并且该列表包含指向Ort对象的指针。重载指针的push_back()

我喜欢使用+=超负荷list.push_back()功能,这样我可以 直接写入推的对象:

List<Ort*> Orte; 
Ort* o = new Ort(..); 

Orte+=o; 

我尝试什么是:

void Navi::operator+=(const Ort& b) 
{ 
    *this->Orte.push_back(b); 
} 

导航是保持一个类列表'Orte'。

但它告诉我,它无法找到正确的操作符重载 - 又名我的参数不正确。

有人能指出我做错了什么吗?

+6

为什么当'Orte'是'列表''时,你过度使用'Navi'? – NathanOliver

+0

已编辑 - Navi是一个具有属性列表 Orte的类; –

+7

'const Ort&'和'Ort *'实际上是不同的类型。 – Jarod42

回答

0

你的问题是在指针的常量中。 如果你看看这里 Question about const pointer in C++?

你会看到,从常量的Ort & b更改参数ORT的* const的b 应该解决您的问题。 (因为你想推回一个const指针到一个List)。