错误:无法从双人**转换为double

Error: Cannot convert from Double** to Double

本文关键字:转换 double 错误      更新时间:2023-10-16

我正在尝试为我的凸赫尔项目创建功能,卡钳((。我尝试为要点创建一堂课,但是我似乎无法使用点从p []。x提取一个rotatingpoint.x的值谢谢。

#include "point.h"
void Point::Set_value(Point p)
{
    x=p.x;                       
    y=p.y; 
}
void Point::Set_value(double nx,double ny)
{
    x=nx;
    y=ny;
}
void comp_geo::Calipers(int n, Point *p)
{
        double Cx = &p[n].x;
        double Cy = &p[n].y;
        rotatePoint.x = Cx;
        rotatePoint.y = Cy;
}

calipers((不起作用。

您需要摆脱&操作员:

void comp_geo::Calipers(int n, Point *p)
{
    double Cx = p[n].x;
    double Cy = p[n].y;
    rotatePoint.x = Cx;
    rotatePoint.y = Cy;`
}

可以简化的:

void comp_geo::Calipers(int n, Point *p)
{
    rotatePoint.x = p[n].x;
    rotatePoint.y = p[n].y;
}

或什至这个(假设rotatePointPoint(:

void comp_geo::Calipers(int n, Point *p)
{
    rotatePoint = p[n];
    // or:
    // rotatePoint.Set_value(p[n]);
}

在旁注上,Point::Set_value(Point)应该通过const参考而不是通过值来获取Point

void Point::Set_value(const Point &p)
{
    x = p.x;
    y = p.y;
}
void comp_geo::Calipers(int n, Point *p)
{
    double Cx = **&**p[n].x;
    double Cy = **&**p[n].y;
    rotatePoint.x = Cx;
    rotatePoint.y = Cy;`
}

不需要and和,因为它指的是内存位置的地址,而不是值。

void comp_geo::Calipers(int n, Point *p)
{
    rotatePoint.x = p[n].x;
    rotatePoint.y = p[n].y;
}