Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 访问同一类的其他对象的变量_C++_Class_Oop_Private - Fatal编程技术网

C++ 访问同一类的其他对象的变量

C++ 访问同一类的其他对象的变量,c++,class,oop,private,C++,Class,Oop,Private,我正在寻找一种以最佳方式访问同一类的其他对象的变量的方法(在安全性和效率方面) 例如,我有一个包含坐标的点类,其对象应该能够计算到其他点的距离 class Point { public: calc_distance(?); private: double mXCoord, mYCoord; }; 当然,我可以通过公开坐标并计算出这个类之外的距离来做到这一点,但是没有更好的方法吗?公开数据成员不是一个好的做法。使用如下的getter函数: class Point { public

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

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

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

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

公开数据成员不是一个好的做法。使用如下的getter函数:

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

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

class Point {
public:
    double getX() { return mXCoord; }
    double getY() { return mYCoord; }
private:
    double mXCoord, mYCoord;
};
double calc_distance(Point point);
或者最好通过传递引用来避免复制:

double calc_distance(Point& point);

只需将另一个
参数传递到
计算距离()
。你可以在那里访问它的
mXCoord
mycord
。与这个问题没有直接关系,但我一直在想:你真的会在point类中使用getter和setter吗?