繁体   English   中英

如何以x,y,z返回位置

[英]How to return a location as x,y,z

我怎样才能使返回的x和y而不只是其中之一? 在Location类中,我保护了名为x_posy_pos数据。

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

您可以返回一个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);
}

尽管我必须注意,此函数没有逻辑意义,但是您返回的是传递给它们的值,而无需修改它们。

你可能是说

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

这样,您将Location的内部x_posy_pos在提供的位置中。 您不需要从返回void的函数return任何东西(实际上,除了void本身,您不能返回任何东西)。 正如大家之前所说,返回一个std::pair可能是一个更好的主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM