lesson 5 value vs reference Flashcards

1
Q

Was sind Klassenvariablen und -funktionen?

A

Klassenvariablen und -funktionen existieren für die gesamte Klasse und nicht für ein einzelnes Objekt. Sie werden mit dem ‘static’-Schlüsselwort deklariert und teilen sich den Speicherplatz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie unterscheiden sich Objektvariablen und Klassenvariablen?

A

Objektvariablen gehören zu einem spezifischen Objekt und haben für jedes Objekt einen eigenen Wert. Klassenvariablen existieren unabhängig von einzelnen Objekten und existieren nur einmal pro Klasse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Zweck von Klassenvariablen und -funktionen?

A

Sie bieten die Möglichkeit, Daten und Funktionen auf Klassenebene zu definieren, die von allen Objekten der Klasse geteilt werden. Sie ermöglichen gemeinsame Ressourcen oder Funktionen, ohne ein Objekt zu benötigen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist der Unterschied zwischen Identität und Gleichheit?

A

Identität bedeutet, dass zwei Objekte dieselbe Instanz sind, während Gleichheit bedeutet, dass sie denselben Wert oder dieselben Attributwerte haben, auch wenn sie unterschiedliche Instanzen sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Value Semantics?

A

Bei Value Semantics wird eine Kopie eines Objekts erstellt. Änderungen an dieser Kopie haben keine Auswirkungen auf das Original.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist Reference Semantics?

A

Bei Reference Semantics wird eine Referenz auf das Objekt übergeben. Änderungen an der Referenz wirken sich auf das ursprüngliche Objekt aus.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie beeinflusst Value Semantics den Zuweisungsoperator (=)?

A

Value Semantics erstellt eine Kopie des rechten Operanden und überschreibt den linken Operanden mit dieser Kopie. Beide Operanden sind danach unabhängig voneinander.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie beeinflusst Reference Semantics den Zuweisungsoperator (=)?

A

Reference Semantics kopiert die Speicheradresse des rechten Operanden und überschreibt die Referenz des linken Operanden. Beide Operanden zeigen danach auf dasselbe Objekt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist der Unterschied zwischen Call-by-Value und Call-by-Reference?

A

Call-by-Value übergibt eine Kopie der Argumente an eine Funktion, während Call-by-Reference eine Referenz auf die Originaldaten übergibt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Programmiersprachen verwenden überwiegend Value Semantics und Reference Semantics?

A

C++ verwendet beide Semantiken. Java und Python verwenden Reference Semantics für Objekte und Value Semantics für primitive Datentypen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was sind die Vor- und Nachteile von Reference Semantics?

A

Vorteile: Effizienter, da keine Kopien erstellt werden. Nachteile: Unerwartete Nebeneffekte durch geteilte Referenzen, erfordert sorgfältiges Speicher-Management.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind die Vor- und Nachteile von Value Semantics?

A

Vorteile: Kopien sind unabhängig, keine Nebeneffekte. Nachteile: Erfordert mehr Speicher und ist weniger effizient aufgrund der Kopieraktionen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was bedeutet „Identity vs. Equality“ in C++?

A

Identität wird durch den Vergleich von Speicheradressen überprüft. Gleichheit wird durch das Überladen des Vergleichsoperators ‘==’ definiert, um benutzerdefinierte Gleichheitskriterien zu implementieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly