2017-05-02 7 views
-4

In meinem TimeCode.h Ich habe folgende:Cast von Objekt zu int verliert Präzision C++

inline TimeCode::operator int() const; 

die in der Lage sein sollte, auszuführen, wenn ich Timecode-Objekt int gegossen.

Aber wenn ich so etwas wie:

(int) firstTimeCode > (int) scndTimeCode 

Der Compiler führt den folgenden Fehler bei mir:

cast from 'TimeCode*' to 'int' loses precision [-fpermissive] 

Weiß jemand, was das Problem ist und wie sie behoben werden? Vielen Dank im Voraus !

+0

Sie übergeben eine Zeigeradresse an einen 'int', nicht an einen' TimeCode'. – Cameron

+0

Sie vergleichen den Zeiger, überladen den Operator '' '<''' or '''>' ''. –

Antwort

6

Schauen Sie sich die Fehlermeldung - es ist Ihnen zu sagen, dass Sie TimeCode* zu int konvertieren - das heißt, mindestens eine Ihrer Operanden ein Zeiger zu einem TimeCode, nicht ein tatsächlichen TimeCode. Sie müssen also zuerst diesen Zeiger dereferenzieren, um Ihren Operator korrekt aufzurufen.

Verwandte Themen