Es ist auch nicht wirklich angenehmer structs zu benutzen. Und genauso zählt auch das Argument nicht, dass man Klassen normal ja als Zeiger übergibt. Du meinst, dass man Klassen oft als Zeiger übergibt, da Klassen schnell groß werden und so nicht so viel neuer Speicher bei der Übergabe angelegt werden muss. Wie hier aber schon mehrfach geschrieben wurde, gibt es keinen großen Unterschied zwischen Klassen und structs, weshalb man genauso gut ein großes struct bauen kann, bzw kleine Klassen. Ob ich jetzt
|
C-/C++-Quelltext
|
1
|
class point {public: int x; int y;};
|
oder
|
C-/C++-Quelltext
|
1
|
struct point { int x; int y;};
|
schreibe, macht keinen großen Unterschied. Und ob ich jetzt Getter und Setter haben möchte oder nicht macht da auch keinen Unterschied. Die Sache ist die, dass viele structs zur einfachen Datenzusammenfassung benutzen, wie ihr selbst schon geschrieben habt und Klassen dann für größere Objekte mit Logik benutzen. Das hat sich halt bei vielen so eingebürgert, wirkliche Gründe gibt es dafür aber eigentlich nicht
Und die Sache mit den Gettern und Settern. Das ist wieder eine der vielen Regeln der Objektorientierung. Man soll/will/muss/darf ja möglichst so viel an Logik und Wissen über ein Objekt verbergen. Die Schnittstelle sagt mir, dass der Getter XY einen int zurück liefert. Ob es intern dazu aber ein Attribut gibt und welchen Typ dieses Attribut hat, weiß ich aber nicht. Dazu kommen natürlich so Geschichten wie Werte überprüfen. Wie sinnvoll das alles ist darüber lässt sich wie immer streiten