【问题标题】:c++ Class Function return Struct elementc++ 类函数返回结构元素
【发布时间】: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() constconst Pos getPos() const。如果您在发布之前实际编译它们,事情会更好,因为struck 显然是一个错字。在一般情况下,我们很难分辨哪些错误是实际错误,哪些是拼写错误。
  • 请注意,您的 getPos 方法正在返回 Pos 的副本。你是说const Pos& getPos() const 吗?

标签: c++ class c++11 struct return


【解决方案1】:
ob.getPos().x_;

工作,只是忽略了()

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多