Hi, More C++ style(?) code I think is in inline... > From: Jilani Khaldi > Sent: Thursday, June 15, 2000 1:40 AM > #include <iostream.h> > class myclass { > int a; > public: > int b; > void setab(int i); > int geta(); > void reset(); > }; # interface definition: module MyClass attr_accessor :b def setab( i ); raise; end def geta(); raise; end def reset(); raise; end end > void myclass::setab(int i) > { > a = i; > b = i*i; > } > > int myclass:: geta() > { > return a; > } > > void myclass::reset() > { > setab(0); > } # implementation: class MyClassImp; include MyClass def initialize() @a = nil @b = nil end def setab( i ) @a = i @b = i * i end def geta() @a end def reset() setab( 0 ) end end > int main() > { > myclass ob; > > ob.setab(5); > cout << "a = " << ob.geta() << '\n'; > cout << "b = " << ob.b << '\n'; > > ob.b = 20; > cout << "a = " << ob.geta() << '\n'; > cout << "b = " << ob.b << '\n'; > > ob.reset; > cout << "a = " << ob.geta() << '\n'; > cout << "b = " << ob.b << '\n'; > > return 0; > } # main: if __FILE__ == $0 aMyClass = MyClassImp.new aMyClass.setab( 5 ) print "a = " << aMyClass.geta.to_s << "\n" print "b = " << aMyClass.b.to_s << "\n" aMyClass.b = 20 print "a = " << aMyClass.geta.to_s << "\n" print "b = " << aMyClass.b.to_s << "\n" aMyClass.reset print "a = " << aMyClass.geta.to_s << "\n" print "b = " << aMyClass.b.to_s << "\n" end As you think, it is very ugly. Needless to say, Matz [ruby-talk:03412] wins. // NaHi