Problema 104

#include <iostream>
using namespace std;

class B
{ protected: int i;
  public: B(int j=5) {cout << " cb "; i=j-2; }
          ~B(){ cout << " db ";}
          int get_i() { return i; } };

class D1: public B
{ int j;
  public: D1(int k=10) {cout << " cd1 "; j=i-k+3; }
          ~D1(){ cout << " dd1 ";} };

 class D2: public D1
{ int k;
  public: D2(int l=15) {cout << " cd2 "; k=i-l+3; }
           ~D2(){ cout << " dd2 ";}  };
D1 f(D1 d1, D2 d2) {return d1.get_i()+d2.get_i(); }
int main()
{ D2 ob2; D1 ob1(3);
  cout<<f(ob1,ob2).get_i()+ob2.get_i();
  return 0;
}