错误 C4716"当事方::运算符+":必须返回一个值

Error C4716 'Party::operator+': must return a value

本文关键字:返回 一个 当事方 C4716 运算符 错误      更新时间:2023-10-16
Party Party::operator + (const Party& party2)
{
Party newParty;
newParty.maxAttendees = maxAttendees + party2.maxAttendees;
newParty.numAttendees = numAttendees + party2.numAttendees;
for (int c = 0; c < getNumAttendees(); c++)
newParty.attendees[c] = attendees[c];
for (int c = numAttendees, d = 0; c < party2.numAttendees; c++, d++)
newParty.attendees[c] = party2.attendees[d];
if (date.compare(party2.date) == 0)
newParty.date = date;
if (location.compare(party2.location) == 0)
newParty.location = location;
if (organizer.compare(party2.organizer) == 0)
newParty.organizer = organizer;

}

它说 Party::operator+ 必须返回一个值。我尝试返回party2newParty等,但我得到更多的错误。

这个错误就是它在锡上说的; 由于您声明它返回一个Party,您需要在函数末尾返回一个值:

Party Party::operator + (const Party& party2)
{
// Some implementation...
return newParty;
}

无论如何不返回值是没有意义的,因为加法通常会导致某种新值。


注意:您可能还需要考虑使函数const,因为您的参数是常量:

Party Party::operator + (const Party& party2) const
{
//...
}