小编Chr*_*uts的帖子

为什么“operator<<()”重载定义中需要“friend”?

class Train{
public: 
    char direction;
    int loading_time, crossing_time;        
    ...

    friend std::ostream& operator<<(std::ostream& os, const Train& t){
        os << t.direction << '/' << t.loading_time << '/' << t.crossing_time;
        return os;
    }
};
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下需要“朋友”?所有属性都是公共的。我应该只使用结构体吗?

c++ class operator-overloading friend

0
推荐指数
1
解决办法
939
查看次数

标签 统计

c++ ×1

class ×1

friend ×1

operator-overloading ×1