[#35688] サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — Onodera Takafumi <onodera-tak@...>

9 messages 2002/08/01

[#35772] Unsecure world writeable dirの警告 — "井上 浩一" <kyoui32@...>

井上です。

31 messages 2002/08/26
[#35774] Re: Unsecure world writeable dir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35775] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35776] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/08/26

まつもと ゆきひろです

[#35778] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35779] Re: Unsecure world writeabledir の警告 — WATANABE Hirofumi <eban@...> 2002/08/26

わたなべです。

[#35780] Re: Unsecure world writeabledir の警告 — nobu.nakada@... 2002/08/26

なかだです。

[#35784] Re: Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...> 2002/08/26

こんにちは、なかむら(う)です。

[#35854] Re: Unsecure world writeabledir の警告 — "Inoue" <rubyist@...1.117.ne.jp> 2002/09/04

井上です。

[#35865] Re: Unsecure world writeabledir の警告 — Koji Arai <JCA02266@...> 2002/09/05

新井です。

[#35866] Re: Unsecure world writeabledir の警告 — matz@... (Yukihiro Matsumoto) 2002/09/06

まつもと ゆきひろです

[#35789] multipart な CGI を速くしたい — Takashi Kanai <kanai@...4u.or.jp>

Windows上でRubyとMySQLを使ってショッピングサイトのようなものを作って

17 messages 2002/08/28

[ruby-list:35691] Re: サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ?

From: nobu.nakada@...
Date: 2002-08-01 13:40:13 UTC
List: ruby-list #35691
なかだです。

At Thu, 1 Aug 2002 20:04:48 +0900,
Shin'ya Adzumi wrote:
> > 私が不勉強なため各クラスの初期化順番等を把握していないせいなのかもしれ
> > ませんが、Cのrb_define_class()で生成したクラスとスクリプト内で生成した
> > クラスとでは、Cで生成したクラスの方が優先的に初期化されたりするのでしょ
> > うか
> 
> どうも Socket::new が initizalize を見てない(そもそも
> Socket#initialize がない)実装になっていることが原因みたいで
> すね。他にもこういうライブラリがあるのかな。

以前はnewだけをオーバーライドしているものが多かったのですが、組
込みクラスに関してはinitializeを呼ぶようになっています。拡張ラ
イブラリについても、大部分はそうなっているんですが、まだいくつ
か例外があります。これを機に、一気に修正?

    Curses::Window	1.6, 1.7
    TclTkIp		1.6, 1.7
    StringScanner	1.7
    Socket関連		1.6


ちなみに、initializeが呼ばれない場合は、newをオーバーライドする
必要があります。

class TestSock < Socket
  if method(:new).arity < 0
    def initialize
      super Socket::AF_INET, Socket::SOCK_DGRAM, 0
    end
  else
    def self.new
      super Socket::AF_INET, Socket::SOCK_DGRAM, 0
    end
  end
end

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread