【问题标题】:Access variables of other objects of the same class访问同一类的其他对象的变量
【发布时间】:2016-07-15 11:14:54
【问题描述】:

我正在寻找一种以最佳方式(在安全性和效率方面)访问同一类的其他对象的访问变量的方法。

例如,我有一个包含坐标的Point 类,其对象应该能够计算到其他点的距离。

class Point {
public:
    calc_distance(?);
private:
    double mXCoord, mYCoord;
};

我当然可以通过公开坐标并计算这个类之外的距离来做到这一点,但是没有更好的方法吗?

【问题讨论】:

  • 只需将另一个Point 参数传递给calc_distance()。您可以在那里访问它的mXCoordmYCoord

标签: c++ class oop private


【解决方案1】:

公共数据成员不是一个好习惯。像这样使用 getter 函数:

class Point {
public:
    double getX() { return mXCoord; }
    double getY() { return mYCoord; }
private:
    double mXCoord, mYCoord;
};

当然,正如 πάντα ῥεῖ 所说,您可以将 Point 类的对象传递给您的函数,如下所示:

double calc_distance(Point point);

或者更好的是,通过传递引用来避免复制:

double calc_distance(Point& point);

【讨论】:

  • 与这个问题没有直接关系,但是我一直在想这个问题:你真的会使用 getter 和 setter 作为一个点类吗?
猜你喜欢
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2015-02-05
  • 2018-04-25
相关资源
最近更新 更多