Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aikon

Escopo da classe

Recommended Posts

Oi pessoal, eu estou fazendo alguns testes com SDL/C++ e me deparei com um problema. A questão é a seguinte, qual o escopo das variáveis declaradas dentro do construtor de uma classe? Vou dar o exemplo do meu código para ver se ajuda a entender a questão:

 

StateTeste::StateTeste(SDL_Surface* scr) : State::State(screen) 
{ 
screen = scr;
SDL_Surface* hello;
hello = IMG_Load( "resources\\preview2.jpg" );
};
void StateTeste::update()
{
//donothing
};
void StateTeste::paint()
{
SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);
};

 

Como dá pra ver eu declarei uma sdl_surface chamada hello dentro do construtor, porém quando eu compilo recebo o erro de que hello não está declarada dentro do método paint(). O escopo das variáveis declaradas no construtor não é global para todos os métodos da classe? E se não for, eu preciso declarar todas as variáveis dentro do header da classe ou tem alguma outra forma?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Campos(ou variáveis) declarados dentro de construtores não são visíveis a outros métodos - lembre-se que o próprio construtor é um método.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os membros de uma classe são declarados na declaração da mesma e não em sua implementação.Não entendi porque você não definiu a variavel hello no método paint e vide a chamada ao construtor da super.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.