Objekt Array id herausfinden

Rodney

Mitglied
Hallo Leute, ich habe mal eine Frage:

folgender Code

Objekttyp Objekt[10]; // ich erstelle 10 Objekte

wenn ich nun Objekt[2].Funktion auffrufe wie kann ich dann in dieser Funktion die Array-Id (hier also 2) ermitteln?

Danke Im Vorraus!
 
Ganz so einfach kannst Du dir das nicht machen!
Die Funktion kann gar nicht wissen, dass das Objekt in einem Array ist, denn es ist ja nur deshalb in einem normalen Array, weil die Objekte des Arrays in Speicher nebeneinander angelegt wurden. Das weiss allerdings nur das Hauptprogramm oder ähnliches....nicht das einzelne Objekt.

Du musst das halt so lösen, dass du zum einen beim Erstellen der Objekte im Array jedem Objekt noch eine ID-Variable hinzufügst. Eine Übergabe des Arrays beim Funktionsaufruf käme da auch noch in Frage aber ....

(imo):
Jedenfalls würde ich Dir dazu sagen, dass das Projekt einfach falsch geplant ist, wenn du unteren Hierachien den Zugriff auf Arrays in viel höheren gewähren willst.
Nicht alles was man mit Zeigern machen kann sollte dann auch damit gemacht werden!
 
hmmm... doch die ID kannste ermitteln... is zwar etwas unüblich aber egal...

OBJECTType obj[10];
obj[2].doIt();


doIt() kann die ID des arrays auf die art und weise ermitteln:
Code:
for(int i = 0; i < (sizeof(obj) / sizeof(OBJECTType)); i++) {
    if(&obj[i] == this) {
        //i == die ID des objects, tu damit was du willst
        break;
    }
}

naja auch wenn dieses verfahren extrem ungewöhnlich ist...
 
Zurück