Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int const letter_count = 10;
- using namespace std;
- class B {
- int i_;
- public:
- B(int i) : i_(i) {}
- int inc() { return doInc(); }
- protected:
- virtual int doInc() { return ++i_; }
- };
- class D1 : public B {
- public:
- D1(int i) : B(i-1) {}
- protected:
- virtual int doInc() { return B::doInc(); }
- };
- class D2 : public B {
- public:
- D2(int i) : B(i-2) {}
- protected:
- virtual int doInc() { return 3; }
- };
- class M : public D1, public D2 {
- public:
- M(int i) : D1(i), D2(i) {}
- protected:
- virtual int doInc() { return D1::doInc() + D2::doInc(); }
- };
- void zad3() {
- M m(letter_count);
- D1& ref1 = static_cast<D1&>(m);
- cout << ref1.inc();
- cout << endl;
- D2& ref2 = static_cast<D2&>(m);
- cout << ref2.inc();
- cout << endl;
- }
- int main()
- {
- zad3();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement