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
Fehlende Typsicherheit, Argumente werden weder zur Compilezeit noch zur Laufzeit geprüft! Funktioniert zudem nur mit POD-Typen, richtige Klassen kann man vergessen. Recht mühsame Punkte, bedenkt man, dass wir in C++ programmieren und das alles gar nicht nötig haben.Zitat von »"K-Bal"«
Ich habe mal gehört, dass das kein schöner Stil sein soll, aber weiß spontan auch keinen Grund und finde kein Quote.
Zitat von »"FLO2"«
Hi
Dort wäre dann ios_base das richtige oder?
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 |
// #include <iostream> #include <vector> using namespace std; void Berechnen (int Zahl1, int data[2]); int main () { vector<int> data; data.push_back(1); data.push_back(2); data.push_back(3); Berechnen (123, 345, 3456); } void Berechnen (int Zahl1, int data[2]) { Zahl1 = data[1] + data[2]; cout << Zahl1 << endl; } |
Quellcode |
|
1 |
error C2660: 'Berechnen': Funktion akzeptiert keine 3 Argumente |
Zitat von »"FLO2"«
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 // #include <iostream> #include <vector> using namespace std; void Berechnen (int Zahl1, int data[2]); int main () { // du schiebst werte in den vector, fängst aber nichts weiter mit an vector<int> data; data.push_back(1); data.push_back(2); data.push_back(3); // so wird kein array übergeben! Berechnen (123, 345, 3456); } // warum übergibst du Zahl1 als parameter? // 1. call by value, Zahl1 wird nicht verändert // 2. du gibts den wert sowieso nur aus // außerdem: indizes sind falsch: // data[2] -> indizes 0 ( erstes element ), 1 (zweites element) void Berechnen (int Zahl1, int data[2]) { Zahl1 = data[1] + data[2]; cout << Zahl1 << endl; } // du willst wohl etwas machen wie: /* void Berechnen(const vector<int>& data); dann kannst du Berechnen einen std::vector<int> als parameter geben */
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 |
// #include <iostream> #include <vector> using namespace std; void Berechnen (const vector<int>& data); int main () { vector<int> data; data.push_back(1); data.push_back(2); Berechnen (345, 3456); } void Berechnen (const vecotr<int>& data) { int Zahl1 = 0; Zahl1 = data[0] + data[1]; cout << Zahl1 << endl; } |
Quellcode |
|
1 2 3 4 5 |
error C2660: 'Berechnen': Funktion akzeptiert keine 2 Argumente error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. error C2143: Syntaxfehler: Es fehlt ',' vor '<' error C2065: 'data': nichtdeklarierter Bezeichner error C2065: 'data': nichtdeklarierter Bezeichner |
C-/C++-Quelltext |
|
1 2 3 4 |
std::vector vec(2); vec[0]=123; vec[1]=456; Berechnen(vec); |
C-/C++-Quelltext |
|
1 |
Berechnen(123, 456); |
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 |
int print(const char *str,...) { int i; int num_count=atoi(str); int *num=(int *)&str; for(i=1;i<=num_count;i++) printf("%d ",*(num+i));} int print_num(int num_count,...) { int i; int *num=&num_count; for(i=1;i<=num_count;i++) printf("%d ",*(num+i)); } int main() { print_num(3,2,3,4); print("3",2,3,4); } |
Werbeanzeige