まつもと ゆきひろです.

In message "[ruby-list:1393] new の  override"
    on 96/12/19, (Dezawa Shin-ichiro) <dezawa / miya.fujifilm.co.jp> writes:
|
|出沢です
|
|あるクラスの new を定義するにはどうするのでしょう?

newはクラスのメソッドで,そのselfは生成されたインスタンスで
はなく,クラスです.では生成したクラスの初期化はどうするかと
いうと,実はデフォルトのnewは生成したオブジェクトに対してメ
ソッドinitializeを実行します.

ですから,初期化する場合はnewを再定義する必要はなくて,
initializeだけ定義すれば勝手に呼び出されて初期化されます.
newに与えた引数もそのまま渡されますし,newがイテレータとして
呼び出された場合,initializeもイテレータとして呼び出されます.

    def initialize(name,file,lineNr)
	@name=name;	@filename=file;	@lineNr  = lineNr
    end

と定義すれば,

    new("name", "/dev/null", 25)

で初期化されたインスタンスが入手できます.

                                まつもと ゆきひろ /:|)