Actually, you'd probably be better off declaring pi as: const double pi = 3.14159265; Defines can be very annoying. Especially since they're pre-processor statements and not actual values, i.e. the *text* "3.14159265" is substituted for the *text* "pi" prior to compilation. Oh, and we ALL know that pi == 3.
Yes I stand corrected, although I wasn't really referring to member variables, but I guess that serves me right for generalising. Anyway, you could argue that in your example you do initialise the variable when it's created, since you set its value in the constructor and "a" does not exist until you instantiate the DaedelusIsWrong class