2016-03-28 67 views
-3

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

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

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

我可以通过使坐标公共做到这一点,计算此类课程以外的距离,但是是不是有更好的办法?

+1

只需将另一个'Point'参数传递给'calc_distance()'。你可以在那里访问它的'mXCoord'和'mYCoord'。 –

回答

0

公共数据成员不是一个好习惯。使用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); 
+0

我更新了我的答案@πάνταῥεῖ,现在好多了吗? – gsamaras

+0

与这个问题没有直接关系,我一直在想这个问题:你真的会使用getter和setter来获得点类吗? – MikeMB

+0

这取决于@MikeMB。 – gsamaras