Ist es möglich, Operatoren in C zu überladen?

8

Ist es möglich, Operatoren (wie Vergleichsoperatoren) in C zu überladen?

Wenn ja, wie machst du das? Ich habe eine schnelle Suche gemacht, aber alles, was ich gefunden habe, war für C ++, und was ich will, ist für C.

Hat jemand Ideen?

Edit1: Die Idee ist: Ich habe eine Struktur, und ich muss einen Vergleich (basierend auf einem Mitglied der Struktur). Und dazu möchte ich Operatoren mit meinem neuen "Datentyp" vergleichen.

Edit2: Ich bin mir vollkommen bewusst, dass ich auf die Verwendung von Operatorüberladung verzichten kann, habe mich aber gefragt, ob Sie das mit OVERLOAD machen können.

Antwort: Das Konzept der Überlastung ist mit der objektorientierten Programmierung verbunden. Da C nicht objektorientiert ist und daher kein Überlastungskonzept enthalten kann. (:

    
Richard 16.05.2012, 18:30
quelle

3 Antworten

18

Nein, das ist nicht möglich. C unterstützt keine Überladung des Operators.

    
meagar 16.05.2012, 18:32
quelle
5

Wenn Sie unter Überlastung Benutzerüberlastungen durch den Benutzer verstehen, lautet die Antwort nein. Einige der vordefinierten Operatoren wie * , + usw. sind jedoch (wenn Sie darüber nachdenken) für arithmetische Typen überladen. Das * ist speziell, da es auch eine Überladung für das Verweisen auf Zeiger hat.

    
dirkgently 16.05.2012 18:33
quelle
3

C unterstützt nicht das Überladen von Operatoren oder Funktionen. Es gibt keine Möglichkeit, < , <= , > , >= , == oder != neu zu definieren, um Strukturtypen direkt zu vergleichen.

    
John Bode 16.05.2012 19:26
quelle

Tags und Links