【发布时间】:2014-10-14 17:11:49
【问题描述】:
所以好奇心让我寻找一种替代方法来返回特定数据或结构的一部分。我目前有一个类似的结构和类,如果不完全是这样的话:
struck Pos {
Int x_{0},
y_{0},
z_{0};
};
class Object {
private:
Pos xyz_{ 0, 0, 0 };
public:
const Pos getPos() { return xyz_; }
};
现在这没有构造函数和其他东西。无论如何,我正在尝试/想要返回 xyz_ 的 x_,现在我可以这样做:
const int getPosX() { return xyz_.x_; }
但这似乎不切实际,因为我必须这样做 3 次以及修改我的主要代码以补偿更改。所以想知道是否有更简单或更好的方法来做类似的事情:
Object ob; // Empty I know but you get the idea?
int xValue = ob.getPos.x_;
非常感谢任何帮助。
【问题讨论】:
-
ob.getPos().x_有什么问题,你在那里几乎没有? -
getPos是一个函数,因此您需要使用()来调用它,否则您是否尝试过? -
啊,No sleep 完全错过了。谢谢你。
-
顺便说一句,将
const Pos getPos()更改为Pos getPos() const或const Pos getPos() const。如果您在发布之前实际编译它们,事情会更好,因为struck显然是一个错字。在一般情况下,我们很难分辨哪些错误是实际错误,哪些是拼写错误。 -
请注意,您的 getPos 方法正在返回 Pos 的副本。你是说
const Pos& getPos() const吗?
标签: c++ class c++11 struct return