Was reading this answer and it surprised me, the suggestion you must always call a base class constructor in the derived class constructor. What if you are working only with default constructors, consider:
class Bar : public Foo {
private:
int y;
public:
Bar() : Foo(), y(0) {
}
...
Is the call to Foo()
really necessary here?