用C ++代码返回对象是什么意思?

时间:2020-05-22 14:43:50

标签: c++ oop

我应该返回C ++类的对象是什么意思?

示例:返回代表下一个偶数的EvenNumber对象

现在EvenNumber是我的类,我必须创建一个函数,该函数返回存储下一个偶数的该类的Object。


int EvenNumber::getNext()
{
    if (evenNum % 2 == 0)
    {
        return evenNum;
    }
    else
    {
        return evenNum + 1;
    }
}

现在我创建了一个整数,该整数将根据用户输入返回一个偶数。我不希望任何人给我答案,但我只是不了解返回对象的概念。

很显然,我在做错什么,因为我在下面的函数中返回的是整数而不是对象。

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};
    }
}

请注意,您不需要显式调用构造函数,因为它会自动被调用,但是显式调用没有任何危害。