参考成员函数调用

reference member functions calling

本文关键字:函数调用 成员 参考      更新时间:2023-10-16

我已经写下了类点的以下成员函数

    double  &Function(){
     double d=33.66;
     double *p=new double;
     p=&d;
     return *p;
    }

使用点对象" pt"为pt.function()在main()中被调用。这有效,尽管我不太明白为什么?可以改进吗?我知道这不是获得" D"值的最佳方法,但我使用它来学习如何使用参考来传递值。感谢您的帮助。

 p=&d;

在这里,它只是创建内存泄漏。在程序的这种情况下,您将永远不会使用分配的内存。

您不需要返回pod(普通旧数据)本地变量的值,这在您的情况下是通过参考。您可以简单地按值返回。

可能需要通过参考返回某些内容的可能情况是该值是您的类的成员,并且您需要从其他地方进行修改。

示例:

// Declaration
class Point {
private:
    double _d = 33.66;
public:
    double& getD() { return _d; }
}
// Usage
Point p;
p.getD() = 66.33;