From: Lionel Thiry Date: 2005-03-15T22:58:31+09:00 Subject: Re: [newby] class variables and class instance variable? >>>>>>Example >>>>> > > class Mytest > @@n_of_Mytest = 0 > def initialize > @@n_of_Mytest += 1 > end > def Mytest.n_of_Mytest > @@n_of_Mytest > end > end > > puts Mytest.n_of_Mytest > a = Mytest.new > puts Mytest.n_of_Mytest > b = Mytest.new > c = Mytest.new > puts Mytest.n_of_Mytest > d = Mytest.new > e = Mytest.new > f = Mytest.new > puts Mytest.n_of_Mytest > >>>>>>Output >>>>> > > 0 > 1 > 3 > 6 > >>>>>>End of Example >>>>> > > > O.K.? > > I've tested your code and I've been surprised that it actually worked. If I correctly understand the mechanism, it's like the class object and its instances are able to access class variables through '@@'. Undubitably, I know now why I couldn't get along with that feature. Honestly, I largely prefer to think of classes as objects and use the class instance variables when I want to share variables between instances. Using '@@' doesn't seem reliable for me, as IMHO it violates some important OO principles, the kind that if not followed leads to very embarrassing problems. Thanks for your help, Lionel Thiry