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