@drakon
dagegen gibts eigentlich nix einzuwenden...
@Nelrim
Also zu Klassen und Strukturen: in C++ ist der
große Unterschied zwischen den beiden nur noch, dass der Standardzugriff auf eine Klasse private und auf eine Struktur public ist. Das sollte man zumindest im Hinterkopf behalten.
Trotzdem finde ich, dass nichts dagegen spricht, im praktischen Programmieralltag weitere Unterschiede zuzuordnen - ich verwende Strukturen nur als vorrangige Datencontainer (egal ob ich dann doch 1-2 Funktionen dazu nehme) und Klassen eben für die Verknüpfung von Funktionalität mit Variablen.
Dein Code zeigt recht deutlich, dass du die Verwendung von Strukturen / Klassen einfach noch nicht verstanden hast - schau dir den Abschnitt zu Klassen nochmal genau!! durch.
Es gibt Klassendeklarationen
|
C-/C++-Quelltext
|
1
|
class X;
|
Klassendefinitionen
|
C-/C++-Quelltext
|
1
|
class X {};
|
Variablendefinitionen in mehreren Formen (teilw. zusammen mit der Klassendefinition)
|
C-/C++-Quelltext
|
1
2
3
|
class X {} var1;
class X var2;
X var3;
|
und den Spezialfall, dass eine Klassenvariable erstellt wird, ohne die Klasse selbst zu benennen
|
C-/C++-Quelltext
|
1
|
class {} var;
|
Bezogen auf deinen Code sieht das also ca. so aus:
|
C-/C++-Quelltext
|
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#include <iostream>
using namespace std;
// Prototypen
//
// hier wird (soweit ich die Fehlermeldung verstehe) eine leere Struktur ohne Name erstellt und ein Pointer darauf deklariert (pStruktur1)
//
void TestFunktion(struct *pStruktur1);
// Hauptprogramm
int main()
{
// Variablen
int Ende = 0;
//
// hier wird die Struktur 'Strukturschablone' definiert
//
struct Strukturschablone
{
int Variable1;
int Variable2;
int Variable3;
};
//
// hier wird eine Variable 'Struktur1' vom Typ Strukturschablone definiert und initialisiert
//
Strukturschablone Struktur1;
Struktur1.Variable1 = 0;
Struktur1.Variable2 = 0;
Struktur1.Variable3 = 0;
//
// hier wird ein Pointer auf Strukturschablone definiert und initialisiert
//
struct Strukturschablone *pStruktur1 = NULL;
pStruktur1 = & Struktur1;
//
// hier wird versucht, pStruktur1 aus Testfunktion, was ein Pointer auf eine leere namenlose Struktur zu sein scheint mit der Adresse auf eine Instanz der Struktur 'Strukturschablone' zu initialisieren
//
TestFunktion(&Struktur1);
cin >> Ende;
return 0;
}
void TestFunktion(struct *pStruktur1)
{
cout << "Hurra! Der Funktionsaufruf hat geklappt!" << endl;
}
|
Weiss nicht, ob dir das jetzt weiter hilft.
// €dit
Developer hat ja einige Sachen schon gepostet während ich noch beim schreiben war