gpt4 book ai didi

c++ - 结构或类中的 friend 功能

转载 作者:行者123 更新时间:2023-12-02 10:03:43 25 4
gpt4 key购买 nike

我不知道为什么当我在C++中使用关键字friend重载<<运算符时,我没有收到错误,但是当我不使用好友关键字时,却得到了错误!

struct Student
{
std::string name;
int age;
bool operator<(const Student& s) const
{
return this->age < s.age;
}
friend std::ostream& operator<<(std::ostream& os, const Student& s);
};

然后在main.cpp中定义我的函数,如下所示:
std::ostream& operator<<(std::ostream& os, const Student& s)
{
os << s.name;
}

错误是当我不使用好友关键字时:
“该运算符的参数太多”
有人可以解释我为什么吗?

最佳答案

当您不编写friend时,您将声明一个成员函数。这意味着像a << b这样的调用的左侧参数是您正在使用的类的实例。因此,您只需要指定右侧参数,该参数将是唯一的。

关于c++ - 结构或类中的 friend 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61276267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com