Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

11.02.2010, 21:54

Der . Operator wird gebraucht, wenn du ein normales Objekt hast (Also keinen Zeiger). Und der -> Operator, wenn du einen Zeiger hast. Das ist alles.

Der -> Operator kann allerdings im Gegensatz zum . Operator für eine Klassen überladen (also selbst definiert) werden.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

12

11.02.2010, 21:55

. für ein Objekt, -> für ein zeiger auf ein objekt

Quellcode

1
2
3
objekt->
// ist das gleiche wie
(*objekt).

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

13

11.02.2010, 22:03

Zitat von »"Sylence"«


Quellcode

1
2
3
objekt->
// ist das gleiche wie
(*objekt).

Muss nicht sein, da der * Operator ebenfalls überladen werden kann.
Allerdings wird, wenn das so gemacht wird das üblicherweise aber mit der Semantik implementiert.

Mastermind

unregistriert

14

11.02.2010, 22:12

Zitat von »"drakon"«

Zitat von »"Mastermind"«

Zitat

// Kapselung ist auch bei Vererbung erwünscht


Kapselung impliziert auch dass man nicht "auf Verdacht" für alles get und set mitliefert, sondern nur dort wo es wirklich benötigt wird.


Wer hat denn sowas behauptet?


Du hast doch get und set dazugeschrieben. Bzw. Get und Set in deinem Fall. Warum schreibst du Verben groß?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

11.02.2010, 22:17

Zitat von »"drakon"«

Zitat von »"Sylence"«


Quellcode

1
2
3
objekt->
// ist das gleiche wie
(*objekt).

Muss nicht sein, da der * Operator ebenfalls überladen werden kann.
Allerdings wird, wenn das so gemacht wird das üblicherweise aber mit der Semantik implementiert.


Wie überlädst du * denn für Zeiger? :shock:

Mastermind

unregistriert

16

11.02.2010, 22:20

Zitat von »"David_pb"«

Zitat von »"drakon"«

Zitat von »"Sylence"«


Quellcode

1
2
3
objekt->
// ist das gleiche wie
(*objekt).

Muss nicht sein, da der * Operator ebenfalls überladen werden kann.
Allerdings wird, wenn das so gemacht wird das üblicherweise aber mit der Semantik implementiert.


Wie überlädst du * denn für Zeiger? :shock:


"owned"

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

17

11.02.2010, 22:30

Zitat von »"David_pb"«

Zitat von »"drakon"«

Zitat von »"Sylence"«


Quellcode

1
2
3
objekt->
// ist das gleiche wie
(*objekt).

Muss nicht sein, da der * Operator ebenfalls überladen werden kann.
Allerdings wird, wenn das so gemacht wird das üblicherweise aber mit der Semantik implementiert.


Wie überlädst du * denn für Zeiger? :shock:

Da steht Objekt und nicht Zeiger auf Objekt. ;) - Und wie man das dort oben unerwartet implementieren kann muss ich dir, denke ich nicht erklären. ;)


Zitat

Du hast doch get und set dazugeschrieben. Bzw. Get und Set in deinem Fall. Warum schreibst du Verben groß?

Ich habe die zuerst hingetan, weil ich dachte, dass er die braucht (wegen dem protected) und dann habe ich gesehen, dass das nicht so ist, weil man es ja per Initialisierung lösen kann was er will. Aber wenn du 11 Zeilen weiter unten gelesen hättest, dann hättest du gesehen, dass ich das ja hingeschrieben habe, dass er die nicht einmal bräuchte.
Und ich habe das gross geschrieben, weil er es anscheinend so geschrieben hätte. Ich persönlich würde alles klein schreiben, aber Naming convention wollte ich nicht diskutieren.

@XelVair
Das const ist dazu da, um anzuzeigen, dass die Funktion das Objekt nicht verändert. Du kannst die Funktion also auch auf konstante Instanzen der Klasse anwenden, was nicht geht, wenn sie nicht mit const deklariert ist.

Werbeanzeige