Так что, работая над этим заданием, я застрял, потому что получил эту ошибку. Я сделал перегрузку оператора раньше, так что это стало неожиданностью.Ошибка: нет соответствия для оператора << в std :: cout (я уже перегрузил оператор << 0)
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;
}
Так появляется вышеуказанная ошибка, не могу найти то, что случилось. Любая помощь будет оценена по достоинству.
У вас нет некоторых включений и std :: ostream/std :: istream (std), и, пожалуйста, не исправляйте это с использованием пространства имен std –
Я использую std_lib_facilities от strouspup, и мне не нужен std :: foo , Опять же, я уже сделал это в другом задании для векторного класса, который выглядел почти так же, как этот, но теперь это не сработает. –