Példa:
class proba(object)
function main()
local o:=probaNew()
local clid:=getclassid(o)
    o:liststruct //régi struktúrta
    classAttrib(clid,"hoho")
    o:liststruct //új struktúrta (hoho-val bővítve)
    //az itteni o még a régi struktúrájú,
    //az attribútumokat tartalmazó tömbben nincs hely a hoho-nak    
    //o:hoho:="próba szerencse" //-> size error
    
    o:=probaNew()
    o:hoho:="próba szerencse" //új objektum, új struktúrával, Ok
Nem lehetne az Object abstract-ba felvenni egy addAttrib és addMethod metódust?
Nem. Látod a példából, hogy az attribútum hozzáadás/létrehozás az osztályművelet. A classAttrib az osztálydefinícióhoz hozzáad egy attribútumot, a korábban létrehozott objektumokat ez visszamenőleg nem érinti, az újak viszont a módosított struktrúrával keletkeznek.
Menet közben változtatgatni az osztályok struktúráit nem egy szokásos dolog, bár elképzelhető, hogy néha van értelme. De inkább csak úgy, hogy a program runtime definiál egy osztályt, és amikor kész, akkor többet már nem módosítja, csak használja.
Vannak nyelvek, amikben az objektumokat lehet egyedileg bővíteni ezzel-azzal. A CCC-ben nem lehet.
--
CCC3