Programare Orientată Obiect
Supraîncărcarea constructorilor
O clasă poate avea mai mulți constructori cu parametri diferiți — se selectează automat în funcție de argumentele din cod.
class Dreptunghi {
public:
int l, lat;
Dreptunghi() : l(1), lat(1) {} // implicit
Dreptunghi(int latura) : l(latura), lat(latura) {} // pătrat
Dreptunghi(int l, int lat) : l(l), lat(lat) {} // general
int arie() { return l * lat; }
};
Dreptunghi d1; // 1x1
Dreptunghi d2(5); // 5x5
Dreptunghi d3(3, 7); // 3x7Constructor de copiere
class MyClass {
public:
int val;
MyClass(int v) : val(v) {}
MyClass(const MyClass& other) : val(other.val) {} // copy constructor
};
MyClass a(10);
MyClass b = a; // apelează copy constructor