Elegante Lösung Strukturenvergleich
-
BOA schrieb:
Aloha,
ist ne schöne Sache, aber dann muß ich doch an einer anderen Stelle diese Abfragen machen, nämlich dort, wo ich die Überladung definiere, oder stehe ich jetzt auf dem Schlauch ?
Wobei Operator - Überladungen natürlich elegant aussehen, keine Frage.

Grüße
BOA
Nein, Du stehst nicht auf dem Schlauch.
Ich würde Dir auch eher dazuraten den Operator zu überladen. Sieht einfach eleganter aus.
-
Aloha,
jo, auch dank an Dich, bin gerade dabei....

Grüße
BOA
-
Als kurze Lösung würde mir allenfalls noch einfallen die Structs mit memcpy zu vergleichen, aber das ist aber ziemlich dirty. Ausserdem muss dann sichergestellt sein, dass die padding-bytes immer gleich sind (wovon ich mal rein intuitiv nicht ausgehe) oder man muss packed-structs erzeugen. Ich denke die beste Idee ist hier wirklich eine Überladung des == Operators, auch wenns ein wenig Mühe macht.
-
die Structs mit memcpy zu vergleichen, aber das ist aber ziemlich dirty. Ausserdem muss dann sichergestellt sein, dass die padding-bytes immer gleich sind
Naja, nach einem memcpy ist das sicher kein problem mehr

du meisnt sicher memcmp.. aber auch damit würde ich gar nicht erst anfangen. erstens Zeiger, zweitens - wie du schon sagtest - padding-bytes.
am operator== (und elementweises vergleichen) führt kein allgemeiner Weg vorbei.
-
Mann kann Operatoren doch nur von Klassen überschreiben

-
Rapha schrieb:
Mann kann Operatoren doch nur von Klassen überschreiben

auch struktoren könne operatoren haben und methoden und kostruktoren und destruktoren und virtuelle funktionen und vererbung und templates und alles halt, was klassen können.
-
Auch schon in C?
Das ist mir ehrlich gesagt neu
Was ist dann der Vorzug einer Klasse (außer dass class schöner aussieht als struct)
?
-
Rapha schrieb:
Auch schon in C?
Das ist mir ehrlich gesagt neu
Was ist dann der Vorzug einer Klasse (außer dass class schöner aussieht als struct)
?in class ist das zeug drinnen private, solange man nicht was anderes schreibt und in struct isses public. da ich das private aber trotzdem hinschreibe in class, isses wurst. "class" läßt sich viel feiner tippen als "struct". außerdem würden mir die leute bei struct nicht glauben, daß der code objektorientiert ist.
-
Stimmt
und vererben kann man bestimmt auch nicht
ich hatte private, public, friend und die Vererbung vergessenGrüße Rapha
-
Rapha schrieb:
Stimmt
und vererben kann man bestimmt auch nicht
stimmt. deshalb hab ich um 15:46 gepostet, daß vererbung geht.
bevor es zu lange dauert, hier die ganze geschichte:
daß in struct per default die sachen public sind und in class private ist der einzige unterschied!struct Foo:public string { private: Foo(const Foo&); public: Foo() :string("hallo") { } virtual ~Foo() { } friend ostream& operator<<(ostream& out,Foo const& f) { return out<<string(f); } };
-
Und schon wieder was gelernt
