Добавьте еще одну строку к вашему main()
:
std::cout << cA.getA(2,3) << std::endl;
Теперь повторите ваш первоначальный эксперимент. Ваши результаты будут другими, теперь:
(gdb) b a::getA
Breakpoint 1 at 0x40089d: a::getA. (2 locations)
"2 местоположения" - это GDB, сообщающий, что теперь он внедрил точки останова для обеих перегруженных функций. Проход по коду подтвердит это.
Если символ разрешен для многократно перегруженных функций, команда b
устанавливает точку останова для каждой из них.
Но поскольку 2-я перегруженная функция была встроенной и никогда не вызывалась в исходном коде, gcc даже не компилировал ее, и для gdb
не было ничего, чтобы установить точку останова на.