lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I really get angry with myself when the problem is the lack of attention. Sometimes, reading rapidly with the screen reader, some information were ignored by brain, especially because the hurry. Your are right. the problem is the bad usage of classlib.

The correct code is:


require('classlib')

class.parent()
function parent:__init()
self.a = 15
end

class.child(shared(parent))
function child:__init()
parent:__init()
self.b = 22
end

function child:display()
print(parent.a)
print(self.b)
end

x = child()
x:display()

On 05-01-2011 21:43, Tomas Guisasola Gorham wrote:    Hi Luciano

The line 08 should be replaced from "class.child()", a simple class, to "class.child(parent)", subclass inheriting attributes and methods of "parent".

But, despite this mistake, the problem related in the previous message is still occuring with the same exact diagnosis!
    I noticed the mistake and changed the code as you mentioned above.
Then I renamed the __init methods to __user_init, but in both versions
the problem still occurs.  I can't understand why, but classlib is
calling child:__init (or __user_init) before calling parent:__init (or
__user_init).  Worst, it is calling the functions with different values
of self, thus the attributes are initialized in different objects :-(
    I think you have to study classlib to understand how it should
be used.

    Regards,
        Tomás