こんにちは、なかむら(う)です。 In message "[ruby-ext:02312] 拡張ライブラリでの継承について" on Jun.29,2006 23:11:11, <fuj / rabbix.jp> wrote: | と出てしまいます。このソースを参考にと言うことでも構いませんので、 | 教えて頂けませんでしょうか。 アロケータを定義する場合、本来ご先祖様がやるはずのアロケーシ ョン処理もちゃんと肩代わりしてあげないといけません。たぶん。 そういうことを考え始めるとめんどくさいので、シンプルに(非公開 の)インスタンス変数として保持しちゃダメですか。 #include <ruby.h> VALUE rb_cPerson; VALUE Person_view(VALUE self){ VALUE name = rb_iv_get(self, "name"); printf("%s\n", StringValuePtr(name)); return(self); } VALUE Person_initialize(VALUE self,VALUE name,VALUE family){ /* check type*/ Check_Type(name,T_STRING); Check_Type(family,T_STRING); rb_iv_set(self, "name", name); rb_iv_set(self, "family", family); return(Qnil); } void Init_Jikken(VALUE val){ rb_cPerson = rb_define_class("Person", rb_cArray); rb_define_private_method(rb_cPerson, "initialize", Person_initialize, 2); rb_define_method(rb_cPerson, "view", Person_view, 0); } それでは。 -- U.Nakamura <usa / garbagecollect.jp>