朋友关键字无法访问私人字段

时间:2018-05-07 12:11:48

标签: c++ oop header-files

所以我试图重载一个<<我的类的运算符使用friend关键字访问私有字段。 代码:

//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 inaccessibleendVerticeweight也是如此。 我哪里弄错了? :d

编辑: 编译器错误(与此案例相关):

  • 语法错误,缺少“;”在“&amp;”
  • 之前
  • ostream:'朋友'不允许数据声明
  • 缺少类型说明符(假设为int)
  • ';'
  • 之前的意外标记
  • 'ostream'不是std的成员

0 个答案:

没有答案