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
Anonymous
unregistriert
Wenn sowieso alles public sein soll, kann man auch Strukturen verwenden, statt einer Klasse. Allerdings war eine Struktur immer nur ein Pack für Daten. Dabei sollte man es auch belassen. Eine Union sollte man immer dann verwenden wenn es Sinnvoll ist dass sich mehrer Daten einen Speicherbereich teilen sollen. Siehe dazu auch die Vektorklassen.Zitat
Und wann soll man diese, anstatt einer Klasse, anwenden?
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
struct _vec3 { union { float x; float u; }; union { float y; float v; }; union { float z; float w; }; }; class Vector3D { _vec3 m_Data; public: // Konstruktoren // Operatoren // Funktionen }; |
Anonymous
unregistriert
Quellcode |
|
1 2 3 4 5 |
union _conv { float f; DWORD dw; }; |
Quellcode |
|
1 2 3 |
_conv state; state.f = 0.2f; pD3DDevi->SetRenderState(D3DRS_FOGSTART, state.dw); |
Anonymous
unregistriert
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
class TestClass { protected: int m_x; }; //hat die selbe bedeutung wie: struct TestClass { protected: int m_x; }; |
Zitat
du schreibst
.., ist es egal ob du struct oder class schreibst
beide haben die selbe bedeutung, der einzige unterschied ist, das der standard zugriff auf eine struct public ist, auf eine class aber private
Quellcode |
|
1 |
class B : A {...} |
Quellcode |
|
1 |
class C : B {...} |
Zitat von »"nofi"«
Hi,
@Hauptmann:
Zitat
du schreibst
.., ist es egal ob du struct oder class schreibst
beide haben die selbe bedeutung, der einzige unterschied ist, das der standard zugriff auf eine struct public ist, auf eine class aber private
Es gibt erhebliche Unterschiede zw. struct und class:
Strukturen(struct) sind einfach und ihre Größe via sizeof() gut bestimmbar, daher kann man sie aus Dateien leicht lesen und in solche schreiben, das ist ihr Vorteil.
Klassen(class) haben, so man will, neben Variablen(Members) wie in einer Struktur auch eigene Funktionen(Memberfunctions) usw.
Zitat
A structure is a class defined with the class-key struct; its members
and base classes are public by default
.
Das ist richtig. Aber die Struktur wird dann immer 4Byte größer mit jeder Funktion. Das ist unter C++ nicht so. Wenn man auf Virtuelle Methoden und virtuelle Vererbung absieht, bestimmen ausschließlich die Member Variablen (Eigenschaften) die Größe einer Klasse oder auch einer Struktur.Zitat
übrigens:
In C kann man auch in strukturen Funktionen haben. Das ganze geht über Funktionszeiger, also Zeiger auf eine Funktion.
Werbeanzeige