Files
42_INT_09_piscine_cpp/d03/test_inheritance/main.cpp
2022-02-20 19:42:37 +01:00

40 lines
1011 B
C++

#include <iostream>
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 & operator=(Base const & rhs) {
std::cout << "base assignation operator\n"; return *this;}
~Base() {
std::cout << "base default destructor\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";}
};
int main () {
Base base1(1); std::cout << "\n";
Derived derived1(1); std::cout << "\n";
Base base2(derived1); std::cout << "\n";
Derived derived2(base1);
return 0;
}