From: OZAWA Sakuro Date: 2000-02-04T18:48:48+09:00 Subject: [ruby-list:20497] Re: Wrapping Regexp in C++ さくです。 In article , Yukihiro Matsumoto writes: >|(Regexpの場合)regexp_をObjectでマークするのは無理じゃないかと。 >あ、そうか。いや、regexp_ に相当するRubyオブジェクトを格納す >るメンバをObjectに持たせるのだ(ほとんど詭弁)。 あえてコードにしてみたり。 class Object { protected: VALUE obj; virtual VALUE initialize(???) =0; Object() { obj = initialize(???); } //... }; 1. Objectは、サブクラスが定義するであろうRubyオブジェクトを 持つためのVALUE型メンバ変数を用意。 2. 各サブクラスではそれを初期化する仮想関数initialize()を実装。 3. Objectのコンストラクタでinitialzie()を呼ぶ。 ってことか。 デザインパターンにこんなのがあったような気がしないでもない。 でもinitialize()の引数はサブクラスごとにマチマチだよなぁ。 -- OZAWA Sakuro PGP: C98F 74E0 AEEB 4578 1DFC F650 3BE0 9627 11FC C9F5 # va_list(ぼそっ)