Aikon 0 Denunciar post Postado Dezembro 31, 2010 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
saulod2 1 Denunciar post Postado Janeiro 3, 2011 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
b2code 0 Denunciar post Postado Janeiro 13, 2011 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