hey leute,
kleines problem
undzwar in dem code(ist nur ein sinnfreies beispiel)
das problem ist das die ausgaben vom Array A in klasse B schwachsinnig sind.
die Ausgabe:
41
85
72
1. -17891602
2. -17891602
3. -17891602
1, 2 und 3 sollten genau wie die oberen zahlen sein.
Ich weiß das das problem von dem delete in klasse A kommt.
die Lösung die ich dafür hätte wäre das ich extra eine set funktionen für x setzte und dann a[i].setx(rand()%101) benutze.
Aber am liebsten würde ich das wenn möglich mit dem init konstruktor lösen den ich habe.
Ist das denn möglich?
kleines problem
undzwar in dem code(ist nur ein sinnfreies beispiel)
das problem ist das die ausgaben vom Array A in klasse B schwachsinnig sind.
Code:
class A{
int *x;
public :
A(){
x = NULL;
}
A(int x){
this->x = new int(x);
cout << *this->x << endl; // 41 85 72
}
int getx(){
return *x; }
~A(){ delete x; }
};
class B{
public:
A a[20];
int Anz;
B(int Anzahl){
Anz = Anzahl;
for (int i = 0; i < Anz; i++){
a[i] = A(rand() % 101);
}
for (int i = 0; i < Anz; i++){
cout << i + 1 << ".\t" << a[i].getx() << endl; // sollte 41 85 72 sein ist aber schwachsinn^^
}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
B a(3);
return 0;
}
41
85
72
1. -17891602
2. -17891602
3. -17891602
1, 2 und 3 sollten genau wie die oberen zahlen sein.
Ich weiß das das problem von dem delete in klasse A kommt.
die Lösung die ich dafür hätte wäre das ich extra eine set funktionen für x setzte und dann a[i].setx(rand()%101) benutze.
Aber am liebsten würde ich das wenn möglich mit dem init konstruktor lösen den ich habe.
Ist das denn möglich?