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?






