错误:无法从双人**转换为double
Error: Cannot convert from Double** to Double
我正在尝试为我的凸赫尔项目创建功能,卡钳((。我尝试为要点创建一堂课,但是我似乎无法使用点从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;
}
或什至这个(假设rotatePoint
是Point
(:
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;
}
相关文章:
- C++在数学计算中将double转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- 错误:无法将"<lambda(double)>"转换为"double(*)(double)"
- 如何正确将"strings"转换为"double"?
- Zedboard zynq-7000 Opencl 浮点数从类型 'double*' 强制转换为类型 'double' 无效
- "std::function<double(double)>"到"double (*)(double)"之间的转换
- C++ 模板函数无法将"std:string"转换为"double"作为回报
- 缩小从double到float的转换
- 在不复制数据的情况下,将double数组转换为只有double成员的structs数组
- 将 mwArray 转换为 std::vector<double>
- 使用词法强制转换在'string to double'中设置双精度变量的精度
- 如何将 Java double[][] 转换为 C++ <vector<vector>> JNI?
- 从 std::vector<double> 到 Python 列表的转换失败(提升 python)
- 转换 cv::mat 转换为 std::矢量<double>并发症
- 将双数组转换为标准::复杂<double>
- 将 std::vector<boost::optional<double>> 转换为 std::vector<double>
- 将 double* 转换为 std::vector<double> (C++)
- 无法将复数<double>转换为双精度
- 将 int 转换为双精度以执行 std::complex <double>的"*"操作
- "double(*)(string, double, double)"尝试传递函数C++时"double"转换错误