私はここ数年、C++ と Java を使用しています。理解できないことの 1 つは、なぜクラスのコンストラクターに名前を付ける必要があるのかということです。たとえばFOO
、C++/Java でクラスを定義する必要がある場合FOO
、コンストラクター名として指定する必要があります。ただし、コンストラクターは明示的に呼び出されることはないため、結局、コンパイラーに名前を付けることを強制する意味は何ですか。
抽象化のパラダイムは、不必要な詳細をプログラマーから隠します。これが理由です。コンストラクターが返す必要があるものは既に明確に定義されているため、コンストラクターには戻り値の型がありません。同じ精神で、すべてのクラスのコンストラクターに一般的な名前を付けることができないのはなぜですか-たとえば、意味のあるもの、initialize()
または何もなく、引数だけ( [arg [,arg]] )
私は自分自身を表現できることを願っています。誰かが決定的な答えを持っている場合は、親切に教えてください。