Article View: fj.lang.misc
Article #163Re: redefining operators (Re: CLU and its companions)
From: Shugo Maeda
Date: Thu, 05 Mar 1998 00:00
Date: Thu, 05 Mar 1998 00:00
33 lines
2428 bytes
2428 bytes
前田です。 Yukihiro Matsumoto <matz@netlab.co.jp> wrote: ||たしかC++だと二項演算子はメソッドじゃなくて2引数の関数にするんですよね? ||僕は左辺をレシーバとみなして、+というメッセージを送ると考える方が好きです。 | |ええと,C++の場合メンバ関数としても定義できたような気がします. そうなんですね、知りませんでした(^^; |それはともかく,+演算子は本来左辺の型によって処理が決定する |のではなく,両辺の型の組合せによって処理が決定するので,左辺 |のメソッドであるのはおかしい,という意見もある訳です.私もそ |れはもっともだと思います. Rubyだとレシーバの型のみでメソッドが決まりますけど、C++だと オーバーロードがあるので、メンバ関数にした場合でも、両辺の 型の組み合わせでメソッドが決定されますよね? 後からクラスを追加したい場合には困りそうですけど...。 |こういう演算子に一番適切なのは恐らくCLOSのようなマルチメソッ |ドですが(全ての引数の型でディスパッチされる),これだけのため |にマルチメソッドを言語に導入する訳にもいきませんしねえ. CLOSみたいに最初からoperation-centricなシステムとして設計されていれば、 それはそれできれいだと思うのですが、class-centricなシステムではオブジ ェクトの振舞いはクラスで定義されていた方が一貫性があってきれいかなと 思ったのでした。 -- 前田 修吾
Technical Details
Message-ID:
<86afb5eivd.fsf@totally-fudged-out-message-id>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<861zwkidmm.fsf@totally-fudged-out-message-id> <lvu39guubl.fsf@picachu.netlab.co.jp> <863eh0do80.fsf@totally-fudged-out-message-id> <6dicoe$lqo@meridian.akashi.flab.fujitsu.co.jp> <86en0ig6r9.fsf@totally-fudged-out-message-id> <6djekb$93k@meridian.akashi.flab.fujitsu.co.jp> <864t1eil2l.fsf@totally-fudged-out-message-id> <lvu39d25r9.fsf_-_@picachu.netlab.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10b195,a28a5726c6efeb63 X-Google-Attributes: gid10b195,public X-Google-Thread: 10caf2,4c2a21ea2f072c7c X-Google-Attributes: gid10caf2,public From: shugo@po.aianet.ne.jp (Shugo Maeda) Subject: Re: redefining operators (Re: CLU and its companions) Date: 1998/03/05 Message-ID: <86afb5eivd.fsf@totally-fudged-out-message-id> X-Deja-AN: 331005648 References: <861zwkidmm.fsf@totally-fudged-out-message-id> <lvu39guubl.fsf@picachu.netlab.co.jp> <863eh0do80.fsf@totally-fudged-out-message-id> <6dicoe$lqo@meridian.akashi.flab.fujitsu.co.jp> <86en0ig6r9.fsf@totally-fudged-out-message-id> <6djekb$93k@meridian.akashi.flab.fujitsu.co.jp> <864t1eil2l.fsf@totally-fudged-out-message-id> <lvu39d25r9.fsf_-_@picachu.netlab.co.jp> X-Emacs: Emacs 20.2, MULE 3.0 (MOMIJINOGA) Mime-Version: 1.0 (generated by SEMI MIME-Edit 0.100 - "Otomaru") Content-Type: text/plain; charset=ISO-2022-JP Organization: AIANet Internet Service Newsgroups: fj.lang.misc,fj.lang.c++