Odata cu crearea variabile de tip ``class'', codul C al pluginului profita de ocazie si cunoscand numele variabilei, inregistreaza un nou tip, care este de fapt clasa obiectelor ce se vor instantia.
O clasa poate avea o clasa de baza, in care caz orice metoda membru a clasei de baza, care nu e ascunsa prin denumire unei metode omonime in clasa derivata, se poate apela prin obiectele clasei de baza, fara efort suplimentar. Practic, din perspectiva C++, toate metodele sunt virtuale. Un obiect are in timpul executiei o clasa curenta, si o clasa originala. Initial cele doua coincid; este posibil insa ca pe parcurs sa se faca ``cast'' la o clasa de baza, sau chiar din alta ierarhie. In acest moment, clasa curenta difera de cea originala; cu toate acestea orice apel de metoda se face din perspectiva clasei originale; in contrast, orice referire la date membru se face din perspectiva clasei curente. Pentru a apela nevirtual metodele clasei curente, se poate folosi data membru ``self'', care este un obiect alias ce are ca si clasa originala clasa curenta a obiectului container. La fel si operatorii, ca si metodele unei clase sunt virtuali.
Orice obiect instanta a unei clase de baza derivata are o data membru numita ``base'' care este un obiect.
Datele membru ``self'' si ``base'' sunt variabile readonly, a caror clasa curent si orginala coincid totdeauna; ele sunt obiecte alias la obiectul container.