У меня есть класс, который реализует граф (шаблонный класс) в C ++ (я этого не делал), и в основном я хочу сделать это, чтобы иметь представление Places (они - мои вершины) и моиребра (которые связывают их) - это расстояния (в милях).
Я объявил простое Graph<Places *, double> places;
, и теперь я создаю метод, который проверяет, есть ли определенное место на графике, чтобы избежатьдубликаты.В моем графе есть метод Vertice<TV,TR>* findvert_content(const TV& v) const;
, который возвращает указатель найденной вершины (поэтому, если этот возвращаемый указатель действителен, я предполагаю, что он существует в графе).Теперь я хочу сделать это в своем тестовом классе:
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 - это просто атрибут в моем графикекласс: Vertice<TV,TR>* graf;
.