2017-05-08 64 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)。