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

Problem z zagnieżdżenie struktury w klasie

Ostatnio zmodyfikowano 2013-08-04 12:36
Autor Wiadomość
fers334
Temat założony przez niniejszego użytkownika
Problem z zagnieżdżenie struktury w klasie
» 2013-08-04 11:46:36
Witam mam problem a mianowicie chciałbym zagnieżdżyć w klasie strukturę z informacjami oto przykładowy kod :
C/C++
#ifndef EKRAN_H
#define EKRAN_H

#include <SDL.h>
#include "Error.h"

class Ekran
{
public:
    Ekran( const int szer, const int wys, const int gk,
    const int tryb, const char * nazwa ) throw( Error );
    ~Ekran();
    void Narysuj_Na_Ekranie( SDL_Surface * grafika, const int poz_x = 0,
    const int poz_y = 0, SDL_Rect * rozmiar_grafiki = NULL );
    bool Zmien_Rozdzielczosc_Ekranu( const int nowa_szer, const int nowa_wys );
    bool Zmien_Tryb_Ekranu( const int nowy_tryb );
    bool Zmien_Glebie_Koloru_Ekranu( const int nowa_gk );
    void Wyswietl();
   
    Ekran( const Ekran & ) = delete;
    Ekran & operator =( const Ekran & ) = delete;
   
private:
    SDL_Surface * powierzchnia_ekranu;
    struct Ekran_Info;
    Ekran_Info dane_ekranu;
   
};

// ---------------------------------------------------------------- //

struct Ekran::Ekran_Info
{
    Ekran_Info( const int szer, const int wys, const int gk,
    const int tryb, const char * nazwa );
    Ekran_Info & operator =( const Ekran_Info & ) = delete;
   
    int szer_okna;
    int wys_okna;
    int gk_okna;
    int tryb_okna;
    const char * nazwa_okna;
};
Gdy zapragnę skompilować kod otrzymuje info :
- field 'dane_ekranu' has incomplete type
Mogę to rozwiązać umieszczając definicje struktury w klasie , ale chciał bym tego uniknąć bo moim skromnym zdaniem definicja poza blokiem klasy , sprawia że sam kod jest bardziej przejrzysty ale to tylko moje skromne zdanie.Czy jest jakaś możliwość zrobienia tego po mojej myśli. Udalo mi sie jeszcze to osiągnąć używając wskaźnika zamiast obiektu do struktury.

Z góry dziękuje za pomoc,Fers.
P-89431
pekfos
» 2013-08-04 12:30:25
Nie możesz utworzyć obiektu, mając tylko deklarację typu. Jedyna opcja to wskaźnik.

ale chciał bym tego uniknąć bo moim skromnym zdaniem definicja poza blokiem klasy
Akurat tu Twoje zdanie się nie liczy. Kod musi być poprawny, dopiero potem można go sobie układać.
P-89436
fers334
Temat założony przez niniejszego użytkownika
» 2013-08-04 12:36:24
No dobra , myślałem że da się coś na to poradzić ale się przeliczyłem najwidoczniej , można zawsze użyć poczciwych wskaźników.
P-89438
« 1 »
  Strona 1 z 1