C++ (Qt)struct RGB { float r, g, b;};
C++ (Qt)struct RGB2 : public RGB {// конструктора нет (по техническим причинам нежелателен) ... RGB2 & operator = ( float f ) { r = g = b = f; return *this; } ...// еще много операторов для удобства};
C++ (Qt)RGB test1 = { 0.0f }; // так можноRGB2 test2 = { 0.0f }; // так нельзя RGB2 test3;test3 = 0.0f; // так можно RGB2 test4 = 0.0f; // а так нельзя
C++ (Qt)RGB2 test4 = 0.0f; // а так нельзя
RGB2 test3;
C++ (Qt)class RGB {public: float getRed( void ) const { return r; } void setRed ( float _r ) { r = _r; }...private: float r, g, b;};
C++ (Qt)#include <iostream> using namespace std; struct RGB { float r, g, b;}; struct RGB2 { RGB2() { r = 0; g = 0; b = 0; } RGB2(const RGB2 &other) { r = other.r; g = other.g; b = other.b; } RGB2(float f) { r = g = b = f; } RGB2(const RGB &other) { r = other.r; g = other.g; b = other.b; } RGB2 & operator = ( float f ) { r = g = b = f; return *this; } operator RGB() const { RGB rgb; rgb.r = r; rgb.g = g; rgb.b = b; return rgb; } float r; float g; float b;}; void func(const RGB &rgb) { cout << "r = " << rgb.r << endl; cout << "g = " << rgb.g << endl; cout << "b = " << rgb.b << endl;} int main(){ RGB test1 = { 0.0f }; RGB2 test2 = test1; RGB2 test3 = 0.4f; func(test3); // Опа, работает! Хотя передаём объект RGB2, вместо RGB.. (operator RGB() const) return 0;}
/* operator RGB() const { RGB rgb; rgb.r = r; rgb.g = g; rgb.b = b; return rgb; } float r; float g; float b;*/