[ SuperC @ 26.01.2007. 00:34 ] @
Code:


#include <iostream>
using namespace std;

class Car {
int id;
public:
Car () {cout << "1";}
Car (const Car& cr) {
cout << "2";
}
Car& operator= (const Car& rhs) {
cout << "3";
return *this;
};

int main () {
Car a, b(a);
Car c, d=c;
a=c;
}



Moze li mi neko objasniti zasto se ovdje dvaput u rjesenju pojavljuje 12


obzirom da je rjesenje 12123
[ karas @ 26.01.2007. 08:15 ] @
Car a poziva default konstruktor, b(a) poziva copy konstruktor, Car c poziva default konstruktor, d=c poziva copy konstruktor, a=c poziva operator=.
Drugim rechima, druga i chetvrta konstrukcija su ekvivalentne, a chetvrta i peta nisu (ako se stavi = prilikom deklaracije objekta onda se poziva copy konstruktor a ne operator=).