Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Losowe obiekty klasy w wektorze - problemik

Ostatnio zmodyfikowano 2023-08-09 12:10
Autor Wiadomość
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ć).
C/C++
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;
   
}
P-180246
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());
P-180247
rjack
Temat założony przez niniejszego użytkownika
» 2023-08-09 12:10:12
ha, bardzo Ci dziękuję!
P-180248
« 1 »
  Strona 1 z 1