in reply to Foo::Button->new vs. newButton()

If you don't like the extra typing, why don't you use the "search and replace" functions of your editor? Just type instead of "Foo::Button" "XX" and then search and replace "XX" by "Foo::Button". Or use a pre-processor or a massive list of "s//" constructs in a script, so you can be even more flexible ("F::B" to "Foo::Button"; "F::M" to "Foo::Menu"; ...). Your creativity is the limit!

CountZero

"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law