假设我有以下代码片段GPoint,它具有复制构造函数,赋值运算符和析构函数.相同的for GCircle和this有一个名为的函数GetCentre(),它返回Gpointobject(Centre)的副本.
在main或ButtonClick(),如下是安全/有效的呼叫GPoint &Centre = circle.GetCentre()?通过这样做(如果有效),我们将节省调用赋值运算符的时间!
class GPoint
{
public:
GPoint();
virtual ~GPoint();
GPoint(double p_dX, double p_dY);
GPoint (const GPoint &Source);
GPoint& operator = (const GPoint &point);
public:
double c_y;
double c_x;
};
class GCircle//:public GShape
{
public:
GCircle();
GCircle(GPoint p_point, double p_dRadius);
~GCircle(){}
operator GPoint&();
operator double&();
double& GetRadius() const ;
GPoint GetCentre() const {return c_Centre;} //Return copy Not a reference
public:
double c_dRadius; …Run Code Online (Sandbox Code Playgroud)