die Klasse eines Objektes feststellen
-
hi allerseits,
im laufe meines programms muss ich an einer stelle die klasse
der objekte eines vectors feststellen
kann mir jmd einen tip geben wie ich sowas grundsätzlich angehe ?
-
Hallo
siehe typeid bzw dynamic_cast.
Allerdings sollte im allgemeinen bei einen guten Konzept mit Polymorphie solche Sachen nicht notwendig sein.bis bald
akari
-
danke, problem hat sich tatsächlich aus der klassenstruktur heraus erledigt,
dafür habe ich nun ein anderes, bei dem ich nicht so recht weiterkomme folgende klasse:class Schaltung { vector <Verbindung> v; // Verbindungen von <-> zu vector <Schaltelement*> s; // Schaltelemente public: void add ( Schaltelement * se ); void verbinde ( int * von, int * zu ); void berechne ( ); };hierbei sei ersteinmal nicht weiter betrachtet wie sich Verbindung und Schaltelement gestaltet
void Schaltung::berechne() { for (int i=0; i < s.size(); i++) *s[i].logfkt(); }obiger aufruf führt jetzt zu einem fehler, liegt hier ein semantischer fehler vor ?
-
Balrok schrieb:
*s[i].logfkt();obiger aufruf führt jetzt zu einem fehler, liegt hier ein semantischer fehler vor ?
der punkt operator hat vorrang vor dem dereferenzierungsoperator. entweder du benutzt klammern:
(*s[i]).logfkt();oder den pfeiloperator
s[i]->logfkt();
-
möp, vielen dank, überhaupt net dran gedacht
