Обратите внимание, что вы перегрузили оператор ++
для класса B
.Метод cal
увеличивается с использованием ++
члена temp1
, который является int
, а не B
- следовательно, он обычно увеличивается с 10 до 11.
Если вывыполнив b++
в вашей main
функции, вы бы получили то, что ожидали.Примечание ++
должен возвращать предыдущее значение увеличенного объекта, если вы хотите оставаться в соответствии с ожиданиями большинства людей, поэтому
something = b++; //something should probably be a B.
будет работать.