Sapere quante istanze di una Classe sono state create

Da Gambas-it.org - Wikipedia.

Per sapere quante istanze, ossia Oggetti, di una Classe sono state create in un codice, si può leggere il valore contenuto dal membro "int count" della Struttura "_CLASS", dichiarata nel file header « User.Home &/ gambasdevel/main/gbx/gbx_class.h », scritta in linguaggio C. [nota 1]
Il predetto membro è così dichiarato :

int count;

Di seguito mostriamo un esempio, nel quale, avendo posto sul Form tre Label, risultano dunque istanziati 3 Oggetti di tipo Label.
Andiamo a leggere il valore del membro "int count" della Struttura "_CLASS", che ci darà il numero di istanze di tipo Label presenti nel codice:

Public Sub Form_Open()

 Dim p As Pointer

' Otteniamo l'indirizzo di memoria della 'Struttura' "_CLASS" relativa alla Classe "Label" del nostro codice:
 p = Object.Address(label)

' Dereferenziamo il "Puntatore" all'area memoria della 'Struttura' "_CLASS" della nostra Classe "Label", spostandoci di 12 byte nella predetta area di memoria, per accedere al suddetto membro "int count" (di tipo "int" il linguaggio C, ossia un Intero occupante 4 byte di memoria) e leggere così il valore da esso contenuto:
 Print int@(p + 12)

End


Note

[1] Vedere anche il seguente paragrafo: Usando i Puntatori per accedere alla Struttura "_CLASS" dei sorgenti di Gambas