[ grabber @ 24.08.2010. 11:37 ] @
Pozdrav 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: Code: #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: Code: 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 |