调用

时间:2017-11-29 07:11:40

标签: c++ reference

我编写了一个类Point

的以下成员函数
    double  &Function(){
     double d=33.66;
     double *p=new double;
     p=&d;
     return *p;
    }
使用Point对象" pt"在main()中调用

as,pt.Function()。这有效,虽然我不太明白为什么?可以改进吗?我知道这不是获得" d"的最佳方式。但我用它来学习如何使用引用传递值。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

WebDriverWait wait1 = new WebDriverWait(utils.driver, 30);
WebElement element = wait1.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input[type='file']")));
element.sendKeys("C:\\Users\\....\\Desktop\\TestImage.png");

在这里,它只是创建一个 memory leak 。你永远不会在这个程序实例中使用那个分配的内存。

答案 1 :(得分:0)

您不需要返回POD(Plain Old Data)局部变量的值,在您的情况下通过引用d。您只需按值返回即可。

您需要通过引用返回某些内容的可能方案是,当该值是您的类的成员时,您需要从其他位置修改它。

示例:

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

// Usage
Point p;
p.getD() = 66.33;