まつもと ゆきひろです

In message "[ruby-ext:01376] Re: wrong argument type error"
    on 00/10/27, 渋川よしき <shibu / JA1YAX.gr.jp> writes:

|ext/dbm.hを真似て
|	rb_define_method(cSurface,"initialize", Surface_init,0);
|
|	rb_define_singleton_method(cSurface,"new", Surface_init,0);
|にしたらwrong argument typeは出なくなりました。画面の初期化、ビットマップの表示
|まで行けました。

あー、そうか。newはオブジェクトの割り当てをinitializeはオブ
ジェクトの初期化を行います。やることが違うのでそのまま置き換
えちゃダメです。

|でもどうしてなんだろう・・・

分かりましたか?

|まつもとさんがこう言われるには何か理由があると思いますがどのような理由からなんで
|すか?よろしければ教えてください。Rubyが動的オブジェクト指向スクリプト言語だか
|ら、間接的に答えなのではないかと推測できますが、具体的に何故かは分かりません。

newを置き換えると後で継承が使いにくいからです。

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