C++ constructors are called BEFORE main() (which makes sense, right?)
The AVR peripherals are initialized AFTER main() (main() calls init(), from the core library.)
Therefore, constructors cannot do things to peripherals that are dependent on them already being initialized, or that will be un-done when the peripherals are initialized. You should not do pinMode(pin, OUTPUT) in a constructor because other things needed before pinMode() will work might not have been done, and because init() might (sensibly) set the pins to the expected startup state (all inputs) afterwards...
(now, in fact, init() on AVRs doesn't do anything with the gpio pins, counts on "all inputs" being left over from the HW reset, and pinMode() from a constructor would probably work just fine. But you still shouldn't do it! (especially because AVRs are not the only CPUs out there any more!)