Losowe obiekty klasy w wektorze - problemik
Ostatnio zmodyfikowano 2023-08-09 12:10
rjack Temat założony przez niniejszego użytkownika |
Losowe obiekty klasy w wektorze - problemik » 2023-08-08 23:28:06 Witam Jestem mega początkującym. Zacząłem sobie kodować starego Frogera i natrafiłem na coś czego nie mogę zrozumieć. Problem zreplikowałem w poniższym krótkim kodzie. Chodzi mi o to, że próbuję wrzucić zrandomizowany obiekt (z danej klasy) do wektora. Zrandomizowany, mam na myśli, że każdy obiekt w wektorze ma mieć losową nazwę (name) i wiek (age). O ile pięknie to chodzi poprzez wskaźnik to już na czystym obiekcie nie - po prostu mam wektor zapchany takimi samymi obiektami (ta sama nazwa i wiek). Będę wdzięczny za wyjaśnienie (celowo w kodzie pomijam funkcje losowe aby nie zaśmiecać). class Animal { public: string name; int age; Animal( string n = randomString( 10 ), int a = randomInt( 1, 100 ) ) { name = n, age = a; } };
int main() { srand(( unsigned ) time( NULL ) ); int n = 10; Animal p; vector < Animal > v; vector < Animal * > v1; while( n > 0 ) { v.push_back( p ); v1.push_back( new Animal ); n--; } for( int i = 0; i < 10; i++ ) { cout << v[ i ].name << " " << v[ i ].age << endl; } cout << endl; for( int i = 0; i < 10; i++ ) { cout << v1[ i ]->name << " " << v1[ i ]->age << endl; } return 0; }
|
|
pekfos |
» 2023-08-09 00:13:30 po prostu mam wektor zapchany takimi samymi obiektami (ta sama nazwa i wiek). Bo wrzucasz za każdym razem taki sam obiekt, kopię p. Zrób v.push_back(Animal()); |
|
rjack Temat założony przez niniejszego użytkownika |
» 2023-08-09 12:10:12 ha, bardzo Ci dziękuję! |
|
« 1 » |