.o
在此程序中,函数模板相互减去对象。但是,它不能正确输出项目。例如,它应该输出:
唐纳德米切尔40岁Rita Clayton 35岁
年龄差异5岁
目前输出:
唐纳德米切尔40岁Rita Clayton 35岁
年龄差异40岁
如何修复此错误? 谢谢你的时间。
答案 0 :(得分:4)
您对operator-
的定义是错误的。您引用的是g
和i
,而不是您正在进行-
的两个人。它应该是这样的:
Person Person::operator-(const Person& p)
{
Person temp;
temp.lastName = "Difference";
temp.firstName = "Age";
temp.age = this->age - p.age; // You can omit this->
return temp;
}
这是全球变量咬你的一个很好的例子。如果没有全局变量,编译器会立即向您显示此问题。
答案 1 :(得分:1)
您的操作员功能正在错误地计算年龄。它应该是
temp.age = this->age - p.age