我不能为了我的生活理解为什么这不起作用。我感到很困惑。我有一个具有数据成员年龄的Person类,我只想添加两个人,以便增加年龄。我不知道为什么这么难,但我正在寻找例子,我觉得每个人都做了一些不同的事情,出于某种原因,他们都没有工作。有时候我看到的例子有两个参数,有时它们只有一个参数,有时参数是对象的引用,有时它们不是,有时它们返回一个int,有时它们返回一个Person对象。喜欢..什么是最正常的方式来做到这一点?试图超载+运营商
class Person {
public:
int age;
//std::string haircolor = "brown";
//std::string ID = "23432598";
Person(): age(19) {}
Person operator+(Person&) { }
};
Person operator+(Person &obj1, Person &obj2){
Person sum = obj1;
sum += obj2;
return sum;
}
我真的觉得超载+运营商应该认真是世界上最容易的事情,除了我不知道我在做什么。我不知道我是否应该在类内部创建重载函数,如果它有所作为,为什么如果我在里面做它只允许一个参数,我只是老实说不明白。
[运算符重载](http://stackoverflow.com/questions/4421706/operator-overloading) – chris
尝试'人总和= obj1.age + obj2.age;'我认为这就是你要找的。 – BrainSteel
当您将其作为成员函数编写时,该函数中的代码将在expresion的lhs的上下文中执行。 'persA + persB'等同于'persA.operator +(persB);'。再次读你的问题,我有点不好意思告诉你。你的帖子里写着*我完全认为我应该被允许在装载猎枪时清理我的霰弹枪*而我只是给你送了一把霰弹枪。 – kfsone