The compiler complains that it doesn't know the identifier 'buffer'. Yet, the function that calls 'buffer' is not even called. Why would it complain if it doesn't need to use it yet? Buffer is declared by the time any object is constructed...

I suppose the answer to my question is that yes, the class checks to see if it knows variables before any object is even constructed. But could anyone reassure me on that fact? Why is it implemented this way, making the code above have errors?