>>119
>mainでFoo fooの中身が決まるのはおかしい
この場合を例に取ると、Fooクラスを利用するためにはfoo[i].hoge = new double[3]
という操作をしないとfooは利用できないですよね。
つまり new Foo() が初期化処理として不完全であるということです。
不完全な状態が存在するのは、後日改造や流用することになったときなどに、
new double[3]するのを忘れているかもしれないという事態が予想できるわけです。

それを防ぐためには、Fooはnewしたら既に完全であることが望ましいわけです。