Вот кстати что выдаёт на определении:
error: after previous specification in 'int** bfs(Graph)'
friend int **bfs(Graph g = Graph());
^
и на описании:
error: default argument given for parameter 1 of 'int** bfs(Graph)'
int **bfs(Graph g = Graph()){
^
По умолчанию граф из 1 вершины, так что обход будет успешен в любом случае, хоть и наверняка предполагался обход не по умолчанию. Согласен, можно упустить логическую ошибку, но это пока не важно. Пишу чисто для фана.
Хотелось бы узнать, а как вы в этом случае поступили?
Спасибо. Забыл в коде написать "std::" перед классом. Остался только вопрос: почему нельзя обратиться просто "ostream" и не писать область видимость. Мы же из глобальной класс берём? Значит он должен быть виден везде?
Ну к примеру у меня есть класс и он используется в основной программе. И тут я озарился, что имя класса уже не описывает его предназначения, а значит надо поменять старое имя во всех объявлениях класса. Здесь то мне и нужна моя "множественная правка".
Сделаю как посоветовал MiiNiPaa. Спасибо за ответ!