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