Ключевое слово Friend не имеет доступа к приватным полям - PullRequest
0 голосов
/ 07 мая 2018

, поэтому я пытаюсь перегрузить оператор << для своего класса, используя ключевое слово friend для доступа к приватным полям. Код: </p>

//Edge.h
#pragma once
class Edge
{
private:
    int startVertice;
    int endVertice;
    int weight;
public:
    //cut
    friend std::ostream& operator<< (std::ostream&, const Edge*);
};

//Edge.cpp
//cut
std::ostream& operator<< (std::ostream& out,const Edge *n) {
    out << "Start: [" << n->startVertice << "] End: [" << n->endVertice << "] Weight: [" << n->weight << "]";
    return out;
}
//cut

Однако IntelliSense сообщает мне, что member Edge::startVertice is inaccessible. То же самое для endVertice и weight. Где я допустил ошибку? : D

EDIT: Ошибки компиляции (связаны с этим делом):

  • синтаксическая ошибка, отсутствует ";" перед "&"
  • ostream: «друг» не разрешен при объявлении данных
  • отсутствует указатель типа (предполагается, что int)
  • неожиданный токен перед ';'
  • ostream не является членом std
...