40 lines
1011 B
C++
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;
|
|
}
|