我应该返回C ++类的对象是什么意思?
示例:返回代表下一个偶数的EvenNumber对象
现在EvenNumber是我的类,我必须创建一个函数,该函数返回存储下一个偶数的该类的Object。
int EvenNumber::getNext()
{
if (evenNum % 2 == 0)
{
return evenNum;
}
else
{
return evenNum + 1;
}
}
现在我创建了一个整数,该整数将根据用户输入返回一个偶数。我不希望任何人给我答案,但我只是不了解返回对象的概念。
很显然,我在做错什么,因为我在下面的函数中返回的是整数而不是对象。
答案 0 :(得分:2)
要从EvenNumber
返回类getNext
的对象,您将需要提供一个采用int
的转换构造函数:
class EvenNumber {
private:
int evenNum = 0;
public:
EvenNumber(int n) : evenNum(n) {}
EvenNumber getNext();
}
EvenNumber EvenNumber::getNext()
{
if (evenNum % 2 == 0)
{
return EvenNumber{evenNum};
}
else
{
return EvenNumber{evenNum + 1};
}
}
请注意,您不需要显式调用构造函数,因为它会自动被调用,但是显式调用没有任何危害。