#include <iostream>
#include <cstdlib>
using namespace std;
class Klasa
{
private:
int zmienna;
public:
Klasa(int zmienna_ = 0) : zmienna(zmienna_) {}
~Klasa() {}
};
int main()
{
Klasa *wskaznik[3];
int zmienna1;
for (int i = 0; i < 2; i++)
{
cout << "Podaj liczbe: ";
cin >> zmienna1;
wskaznik[i] = new Klasa(zmienna1);
}
//usuwamy pierwszy obiekt
delete wskaznik[0];
cin >> zmienna1;
wskaznik[2] = new Klasa(zmienna1);
//okazuje sie, ze przypisalo sie do wskaznik[0] i wskaznik[2]
system("pause");
}
Mam pytanie do tego programu. Na początku podajemy pierwszą liczbę, obiekt jest przypisywany do wskaznik[0]. Następnie podajemy kolejną liczbę, obiekt jest przypisywany do wskaznik[1]. Następnie usuwamy obiekt z miejsca wskaznik[0]. Następnie tworzymy nowy obiekt i przypisujemy do wskaznik[2]. Co się okazuje, obiekt ten został przypisany do wskaznik[0] oraz wskaznik[2]. Dlaczego tak się dzieje? Dlaczego nie przypisuje go tylko do wskaznik[2]?