1/* Copyright 2015-2023 Free Software Foundation, Inc. 2 3 This program is free software; you can redistribute it and/or modify 4 it under the terms of the GNU General Public License as published by 5 the Free Software Foundation; either version 3 of the License, or 6 (at your option) any later version. 7 8 This program is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 GNU General Public License for more details. 12 13 You should have received a copy of the GNU General Public License 14 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16struct A 17{ 18 A () : a_ (1) {} 19 int do_it (int amount) { return a_ + amount; } 20 21 int a_; 22}; 23 24struct B 25{ 26 B () : b_ (2) {} 27 int do_it (int amount) { return b_ - amount; } 28 29 int b_; 30}; 31 32struct C 33{ 34 C () : c_ (3) {} 35 int do_it (int amount) { return c_ * amount; } 36 37 int c_; 38}; 39 40struct D : public A, B, C 41{ 42 D () : d_ (4) {} 43 44 int d_; 45}; 46 47int 48main () 49{ 50 D d; 51 int var = 1234; 52 53 var = d.A::do_it (1) 54 + d.B::do_it (2) 55 + d.C::do_it (3); // break here 56 57 return 0; 58} 59