小林です。

Yasuhiro Fukuma さんへの返信:
>
> Rubyの catch/throw は、C++の try+catch/throw というよりは、むしろCの
> setjmp()/longjmp() に似ています。
>
C++でもsetjmp()/longjmp()はありますが、単純にスタックを戻してジャンプす
るだけなので、C++では使用しないように勧められています.
これは、(rubyでも同じかな?)ローカルに作成されたオブジェクトを正常に破
棄するためにグローバルアンワインディング(といったと思います)しなければ
ならないからです。つまり、オブジェクトが絡んでくるとsetjmp()/longjmp()より
やはり、try+catch/throwかなと思います。同じ言葉も使用しているし。

ところで、rubyにはデストラクタが無い(らしい)ので、グローバルアンワインデ
ィングは必要無いのでしょうか?
もっと一般的な質問にすると、rubyのオブジェクトでは、デストラクタのような
機能は必要無いのでしょうか?

OZAWA Sakuro さんへの返信:
> クラス名はClassクラスのインスタンスを参照する定数なので、当然大文字でな
> ければならない、ということではなかったかな?
    class cTest
    .....
    end
で、確かに
    class/module name must be CONSTANT
というエラーになりました.

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
WWW: http://www.tinyforest.gr.jp