Malo vjezbam ovaj C++ i naisao sam na zadatke ovog tipa i nikako da to skontam. Onako lupam bezveze, pa sta pogodim. Zato molim nekog da mi malo poblize objasni. Radi se o sljedecem. Imam dat kod ispod i trebam napisati sta ce program dati kao rezultat ispisa:
#include <iostream>
using namespace std;
class super
{
public:
virtual ~super()
{
cout << "Pozdrav od bazne" << endl
}
void f(int i)
{
cout << "Super : " << i << endl;
}
};
class sub : public super
{
public:
~sub()
{cout << "pozdrav od izvedene;" << endl;
}
void f(int i)
{
cout << "Sub :" << i << endl;
}
};
int main ()
{
super b;
sub i;
b.f(5);
i.f(5);
super& a=i;
a.f(10);
super* p = new sub;
p->f(10);
delete p;
return 0;
}
Imam i rješenje zadatka:
Super : 5
Sub : 5
Super : 10
Super : 10
Pozdrav od izvedene;
Pozdrav od bazne
Pozdrav od izvedene;
Pozdrav od bazne
Pozdrav od bazne
Eh sad mi tu nije jasno odakle ovoliko pozivanja destruktora :D I kako ce se ponasati varijabla i ako je definisemo u ovom redu: super& a=i, a kako ova nova sub iz ovog reda: super* p = new sub. Je li ona sub, ili super, jer pokazivac je na tip super :S Zadnja dva reda u ispisu se pojave nakon zavrsetka programa. Koje se to dvije bazne tad uniste :S Eto, nadam se da ce mi neko pomoci. Hvala unaprijed