[英]No viable conversion from 'Foo' to 'Foo *const' C++
我有一個用C ++實現圖形(模板類)的類(我沒有做到這一點),基本上我想要做的是表示Places(它們是我的頂點)和我的邊緣(那個鏈接他們)是距離(英里)。
我宣布了一個簡單的Graph<Places *, double> places;
現在我正在創建一個方法來檢查圖中是否已存在某個Place以避免重復。 我的圖有一個方法Vertice<TV,TR>* findvert_content(const TV& v) const;
返回它找到的頂點的指針(所以如果返回指針有效,我假設它存在於圖中)。 現在我想在我的Test類中執行此操作:
bool Test::verifiesName(Place *place) {
Vertice<Place *, double> find_place = places.findvert_content(*place);
...
}
問題是它給了我一個語義問題:“從'Place'到'Place * const'沒有可行的轉換”,我不知道該怎么做。
這是我的findvert方法的代碼(供參考):
template<class TV,class TR>
Vertice<TV,TR>* Graph<TV,TR>::findvert_content(const TV& v) const
{
Vertice<TV,TR>* ap=graf;
while (ap != NULL)
{
if (ap->vcontent == v)
return ap ;
else
ap=ap->apvertice;
}
return ap;
}
PS graf只是我的Graph類中的一個屬性: Vertice<TV,TR>* graf;
。
*place
是place
所指地址的值。 在調用方法時,您確定要傳遞值而不是指針本身嗎? 喜歡:
Vertice<Place *, double> find_place = places.findvert_content(place);
另外,如果你沒有在方法中修改v
,為什么還需要&? 然后宣布
template<class TV,class TR>
Vertice<TV,TR>* Graph<TV,TR>::findvert_content(const TV v) const
它應與上述呼叫兼容。
該TV
在你的類型places
成員需要一個指向一個Place
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.