gpt4 book ai didi

c++ - 错误:std::cout 中的运算符 << 不匹配(我已经重载了 << 运算符)

转载 作者:行者123 更新时间:2023-11-30 02:39:31 25 4
gpt4 key购买 nike

因此,在完成这项作业时,我遇到了这个错误,因此卡住了。我以前做过运算符重载,所以这让我感到惊讶。

class RGB
{
public:

RGB(float r1, float g1, float b1);
RGB(RGB const& color); //copy constructor
RGB();

friend ostream& operator<<(ostream& os, RGB& color);
friend istream& operator>>(istream& is, RGB& color);

friend float r();
friend float g();
friend float b();
private:
float r, g, b;
};

//Something something

RGB::RGB(float r1, float g1, float b1){
r = r1;
g = g1;
b = b1;
}

//Something something

ostream& operator<<(ostream& os, const RGB& color){ // << Overloading
return os<<"Red: "<<color.r<<endl<<"Green: "<<color.g<<endl<<"Blue: "<<color.b<<endl;
}

这是主要的

int main()
{
RGB mycolor(1,2,3);
cout<<mycolor;

return 0;
}

于是出现了上述的错误,似乎找不到问题所在。任何帮助将不胜感激。

最佳答案

我认为您的声明和定义之间存在不匹配。您的声明需要 RGB& color而你的定义需要 const RGB& color .尝试申报operator <<像这样:

friend ostream& operator<<(ostream& os, const RGB& color);

关于c++ - 错误:std::cout 中的运算符 << 不匹配(我已经重载了 << 运算符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782265/

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