Stały statyczny obiekt jako pole klasy - jak definiować?
Ostatnio zmodyfikowano 2016-09-15 14:51
elradziu Temat założony przez niniejszego użytkownika |
Stały statyczny obiekt jako pole klasy - jak definiować? » 2016-09-15 14:16:27 Witam ostatnio tak siedziałem i się zastanawiam bo nie wiem jak to jest wykonane mamy obiekt (np. tak jak w SFML) klasy Color i w tej klasie są obiekty tej samej klasy predefiniowane. Więc nasuwa się mi pytanie jak i gdzie pisać definicję takiego obiektu? Kod: Color.hpp: class Color { int r, g, b; public: static const Color Red; static const Color Blue; Color( int red, int green, int blue ); Color( const Color & ); };
Color.cpp #include "Color.hpp"
Color::Color( int red, int green, int blue ) : r( red ) , g( green ) , b( blue ) { } Color::Color( const Color & ) { }
Jak (zapewne za pomocą pierwszego konstruktora) i gdzie wykonać poprawnie inicjalizację wartości r,g,b dla obiektów Red oraz Blue? |
|
pekfos |
» 2016-09-15 14:30:37 Definiuj jak każdą inną statyczną składową klasy. |
|
elradziu Temat założony przez niniejszego użytkownika |
» 2016-09-15 14:51:13 Dzięki tak robiłem i miałem problemy dla tego że jest to zmienna statyczna i STAŁA jednocześnie, a ja mi w definicji zmiennej statycznej brakowało ciągle słowa const. Także dzieki za pomoc, a dla potomnych rozwiązanie: #include "Color.hpp"
Color::Color() { } Color::Color( int red, int green, int blue ) : r( red ) , g( green ) , b( blue ) { } Color::Color( const Color & ) { } void Color::WrCol() { std::cout << "r: " << this->r << "\ng:" << this->g << "\nb: " << this->b << std::endl; }
const Color Color::Red( 255, 0, 0 ); const Color Color::Blue( 200, 100, 50 );
|
|
« 1 » |