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