如何将位置返回为x,y,z

时间:2016-04-23 19:17:48

标签: c++ return accessor

如何让这个返回x和y,而不仅仅是其中一个? 在我的Location类中,我保护了名为x_posy_pos的数据。

void Location::getXY(double& x, double& y) const {
    x_pos = x;
    y_pos = y;
    return x, y;
}

2 个答案:

答案 0 :(得分:1)

您可以返回std::pair。我假设你想按价值返回,而不是在这里引用。

#include <utility> // for std::pair 

// if using c++14, else use std::pair<double,double> as return type 
auto Location::getXY(double& x, double& y) const {
    x_pos = x;
    y_pos = y;
    return std::make_pair(x,y);
}

虽然我必须注意到这个函数没有逻辑意义,但是你返回的值是你在不修改它们的情况下开始的。

答案 1 :(得分:0)

你可能意味着

void Location::getXY(double& x, double& y) const {
    x = x_pos;
    y = y_pos;
}

这样您就可以在提供的位置存储Location的内部x_posy_pos。您不需要return来自返回void的函数的任何内容(实际上,除了void之外,您不能返回任何内容)。 正如大家之前所说,返回std::pair可能是个更好的主意。