まつもと ゆきひろです

In message "Re: [ruby-dev:27890] rb_funcall2() for protected method"
    on Wed, 30 Nov 2005 17:18:16 +0900, nobuyoshi nakada <nobuyoshi.nakada / ge.com> writes:

|rb_funcall2()を使うとprivate methodも呼べるのに、protected
|methodは呼べないというのは、ちょっとヘンな感じがします。

そうですか?

C++と違ってprivateとprotectedはそれぞれ別のもので段階的に制
約が厳しくなっているわけではないので、こんなものじゃないかと
思います。

  public:    デフォルト、制限ナシ
  private:   関数スタイルでしか呼べない
             funcallやinstance_evalを抜け道にできる
  protected: selfがメソッドを定義しているクラスのサブクラス
             でなければならない。抜け道ナシ

protectedに抜け道がないから欲しいというのではあれば分からな
いでもないですが...。それってfuncallで呼べるようにすればよい
のかっていうとよくわかんないです。

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