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
Zitat
Leider nicht!
Schau dir das hier an:
Alter Hase
Zitat von »"Wabachota"«
[...]
Zeiger sind deswegen besser weil man weniger fehler machen kann.
einer funktion die eine referenz erwartet:
[...]
Zitat von »"odc"«
So ganz ist mir noch nicht klar, warum und weshalb Referenzen überhaupt verwendet werden sollten.
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
//C++ für Spieleprogrammierer //Aufgabe6_10 //uiuiui // #include <iostream> using namespace std; //Struktur // struct Spieler { int Energie; int Punkte; int Team; }; //Prototypes // void BerechnePunkte (int *pPunkte); //Variable muss geändert werden -> Zeiger void ZeigeSpieler (Spieler &Spieler1); //Großes Objekt/Instanz wird nicht geändert -> Referenz void LadeLevel (); //Hauptprogramm // int main() { //Variablen bzw. Instanzen Spieler Spieler1; //Initialisierung Spieler1.Energie = 1000; Spieler1.Punkte = 0; Spieler1.Team = 1; LadeLevel(); //Datenausgabe des Spielers VOR Funktionsaufrufen... cout << "Daten des Spielers..." << endl; cout << "---------------------" << endl; cout << "Energie: " << Spieler1.Energie << endl; cout << "Punkte: " << Spieler1.Punkte << endl; cout << "Team: " << Spieler1.Team << "\n\n"; cout << "Es gibt 550 Bonuspunkte..." << endl; cout << "\n\n"; //Funktionsaufrufe - hier werden nun die "neuen" Daten //in den Zeiger geschrieben. //Zeiger verwendet deshalb, weil der Wert verändert wird //Die Struktur deshalb, weil ein großes Objekt übergeben wird, das nicht //verändert wird! BerechnePunkte (&Spieler1.Punkte); //Funktionsaufruf um die Struktur abzubilden... ZeigeSpieler (Spieler1); //Datenausgabe des Spielers NACH Funktionsaufrufen... cout << "Daten des Spielers..." << endl; cout << "---------------------" << endl; cout << "Energie: " << Spieler1.Energie << endl; cout << "Punkte: " << Spieler1.Punkte << endl; cout << "Team: " << Spieler1.Team << "\n\n"; cout << "Es gibt 550 Bonuspunkte..." << endl; cout << "\n\n"; return 0; } void BerechnePunkte (int *pPunkte) { *pPunkte += 550; cout << "Der Spieler hat nun: " << *pPunkte << " Punkte." << "\n\n"; } void ZeigeSpieler (const Spieler &Spieler1) { cout << "ZeigeSpieler aufgerufen" << endl; } void LadeLevel () { cout << "Level 1 geladen...!" << "\n\n"; } |
Zitat
Linker-Vorgang läuft...
Aufgabe6_10.obj : error LNK2001: Nichtaufgeloestes externes Symbol "void __cdecl ZeigeSpieler(struct Spieler &)" (?ZeigeSpieler@@YAXAAUSpieler@@@Z)
Debug/Aufgabe6_10.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.
Aufgabe6_10.exe - 2 Fehler, 0 Warnung(en)
Sheddex
unregistriert
C-/C++-Quelltext |
|
1 2 |
void ZeigeSpieler (Spieler &Spieler1); void ZeigeSpieler (const Spieler &Spieler1) |
Werbeanzeige