Пишу класс "граф" и дружественную функцию "поиск в ширину". В функцию в параметр "ваш граф" передаю по умолчанию конструктор, который создаёт граф из 1 вершины. Дальше за меня расскажет код:
/**********
* граф содержит:
* количество точек
* вектор связности
**********/
class Graph {
int vs;
std::vector<int> **relations;
public:
Graph(int _vs = 1){
vs = _vs;
relations = new std::vector<int>*[_vs];
for(int i = 0; i < _vs; i++) relations[i] = new std::vector<int>;
}
Graph &bind(int from, int to);
// печать в стандартный поток
friend std::ostream & operator <<(std::ostream &out, Graph &g);
// поиск в ширину
friend int **bfs(Graph g = Graph::Graph());
};
Вопрос: отчего ж компилятор ругается на мой параметр по умолчанию? Ведь вызов функции я могу запихнуть в параметры по умолчанию, почему тогда с конструктором беда?
UPD:
ответ 1,
ответ 2