在C ++中的方法返回中组合多个值

时间:2015-08-06 13:48:14

标签: c++ getter-setter

我试图看看是否可以以与在C ++中使用setter相同的方式组合多个get值。我正在使用一本书中的例子,它将每个吸气剂放在一个单独的线上。

我用于setter的示例如下:

int getAge(){return age;};
int getWeight(){return weight;}
string getColor(){return color;}

是否可以为多个getter值编写单行代码,例如?

mcrypt()

4 个答案:

答案 0 :(得分:6)

当然,按值返回std::tuple

std::tuple<int, int, string> getAllTheValues() const
{
    return std::make_tuple(age, weight, color);
}

或参考:

std::tuple<int const&, int const&, string const&> getAllTheValues() const
{
    return std::tie(age, weight, color);
}

虽然你可能不想真正写出这种东西。只需通过课程本身,并使用你已经拥有的单一的getter。

答案 1 :(得分:2)

这是一个没人提到过的解决方案:

struct values { int age; int weight; string color; };

values getValues() const
{
    return { this->age, this->weight, this->color };
}

答案 2 :(得分:0)

您可以通过引用传递而不是返回值,例如:

void getValues(int & yrs, int & lbs, string & clr) const
{
   yrs = this->age;
   lbs = this->weight;
   clr = this->color;
}

答案 3 :(得分:0)

您可以编写一个函数来获取引用作为输入,如下所示:

void getAllTheValues(int& age, int& weight, std::string& color) {
  age = this->age;
  weight = this->weight;
  color = this->color;
}

并像那样使用

int age, weight;
string color;

myClass object();
object.getAllTheValues(age, weight, color);