Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Stały statyczny obiekt jako pole klasy - jak definiować?

Ostatnio zmodyfikowano 2016-09-15 14:51
Autor Wiadomość
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:
C/C++
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
C/C++
#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?
P-151738
pekfos
» 2016-09-15 14:30:37
Definiuj jak każdą inną statyczną składową klasy.
P-151739
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:

C/C++
#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 );
P-151741
« 1 »
  Strona 1 z 1