1
我用在C列表++C++名單,從 'VALUE_TYPE'
std::list<Foo> foo;
foo.push_back(bar);
Foo *ret = foo.back();
當編譯我得到這個錯誤(在最後一行)沒有可行的轉換:
No viable conversion from 'value_type' (aka Foo) to 'Foo *'
我怎樣才能解決這個?
感謝
我用在C列表++C++名單,從 'VALUE_TYPE'
std::list<Foo> foo;
foo.push_back(bar);
Foo *ret = foo.back();
當編譯我得到這個錯誤(在最後一行)沒有可行的轉換:
No viable conversion from 'value_type' (aka Foo) to 'Foo *'
我怎樣才能解決這個?
感謝
foo.back()
會返回一個參考(即Foo &
),但你試圖將其分配到一個指針。
爲了得到它的工作,你可以分配,而不是一個參考:
Foo &ret = foo.back();
或者獲得該項目的地址返回,並將其賦值給一個指針:
Foo *ret = &foo.back();
參考!我覺得很愚蠢,在文檔中我是紅色的參考,但思想指針,也許我不應該在午夜寫代碼...謝謝... – Griffosx