Как глобальная функция может вызывать определенную функцию в классе? - PullRequest
0 голосов
/ 10 апреля 2011

У меня есть глобальная функция и класс, содержащий несколько функций-членов, как показано ниже:

Функция Vert () печатает пустой текст на консоли.

Во время отладки я обнаружил, что значения в Vertice1 [i] равны нулю, поэтому в консоли он может быть пустым.Но dispFileName содержит значения.

Правильно ли я передаю значения в вектор?

// Определение вектора:

1 Ответ

3 голосов
/ 10 апреля 2011

После окончания первого цикла for у вас есть вектор указателей на объекты Vertex.Но фактические объекты Vertex вышли из области действия , поскольку они локальны для первого цикла for.Так что ваши указатели недействительны в этот момент , и вы получаете случайные результаты (в данном случае пустые строки).

Здесь я предполагаю, что Graph<T, U>::Vertice1 является std::vector<Vertex<T, U>*> а не что-то с использованием умных указателей.

Самое простое решение - сделать так, чтобы вектор содержал объекты Vertex, а не указатели на объекты Vertex.

...