d03 ex01 refonte complete ok
This commit is contained in:
@@ -2,38 +2,38 @@
|
||||
|
||||
class Base {
|
||||
public:
|
||||
Base() {
|
||||
std::cout << "base default constructor\n";}
|
||||
Base(int i) {
|
||||
std::cout << "base parameters constructor\n";}
|
||||
Base(Base const & src) {
|
||||
std::cout << "base copy constructor\n"; *this = src;}
|
||||
Base () : _n(1) {}
|
||||
Base & operator=(Base const & rhs) {
|
||||
std::cout << "base assignation operator\n"; return *this;}
|
||||
~Base() {
|
||||
std::cout << "base default destructor\n";}
|
||||
_n = rhs.getN();
|
||||
std::cout << "base assignation operator\n";
|
||||
return *this;
|
||||
}
|
||||
int getN() const {
|
||||
return _n;
|
||||
}
|
||||
void putN(int i) {
|
||||
_n = i;
|
||||
}
|
||||
protected:
|
||||
int _n;
|
||||
};
|
||||
|
||||
class Derived : public Base {
|
||||
public:
|
||||
Derived() {
|
||||
std::cout << "derived default constructor\n";}
|
||||
Derived(int i) {
|
||||
std::cout << "derived parameters constructor\n";}
|
||||
Derived(Derived const & src) {
|
||||
std::cout << "derived copy constructor\n"; *this = src;}
|
||||
Derived & operator=(Derived const & rhs) {
|
||||
std::cout << "derived assignation operator\n"; return *this;}
|
||||
~Derived() {
|
||||
std::cout << "derived default destructor\n";}
|
||||
Base::operator=(rhs);
|
||||
std::cout << "derived assignation operator\n";
|
||||
return *this;}
|
||||
};
|
||||
|
||||
int main () {
|
||||
|
||||
Base base1(1); std::cout << "\n";
|
||||
Derived derived1(1); std::cout << "\n";
|
||||
Base base2(derived1); std::cout << "\n";
|
||||
Derived derived2(base1);
|
||||
Derived foo1;
|
||||
Derived foo2;
|
||||
foo2.putN(2);
|
||||
std::cout << foo1.getN() << " " << foo2.getN() << "\n";
|
||||
foo2 = foo1;
|
||||
std::cout << foo1.getN() << " " << foo2.getN() << "\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user