1 // Special g++ Options:
2 
3 #include <iostream>
4 
5 class foo {
6 public:
foo(int i)7         foo(int i) {k = i;}
8 protected:
9         int k;
10 };
11 
12 class bar_1 : public foo {
13 public:
bar_1(int i)14         bar_1(int i) : foo(i) {}
get_k()15         int get_k() {return k;}
16 };
17 
18 class bar_2 : public foo {
19 public:
bar_2(int i)20     bar_2(int i) : foo(i) {};
get_k()21         int get_k() {return k;}
22 };
23 
24 class multiple : public bar_1, public bar_2 {
25 public:
multiple(int i1,int i2)26         multiple(int i1, int i2) : bar_1(i1), bar_2(i2) {}
print()27         void print() {
28                 std::cout << "bar_1::k -> " << bar_1::k << "\n";
29                 std::cout << "bar_2::k -> " << bar_2::k << "\n";
30                 std::cout << "bar_1::get_k() -> " << bar_1::get_k() << "\n";
31                 std::cout << "bar_2::get_k() -> " << bar_2::get_k() << "\n";
32         }
33 };
34 
main()35 int main() {
36         multiple m(1,2);
37         m.print();
38 }
39 
40 
41