【发布时间】:2011-08-18 14:23:18
【问题描述】:
可能重复:
why isnt it legal to convert (pointer to pointer to non-const) to a (pointer to pointer to a const)
我有一个函数:
bool isCirclePolygonIntersection(const Point*, const int*, const Point*,
const Point**, const int*);
我试图这样称呼它:
isCirclePolygonIntersection(p, &r, poly_coord, poly, &poly_size)
poly 的定义如下:
Point** poly = new Point*[poly_size];
当我尝试编译时出现编译器错误:
error C2664: 'isCirclePolygonIntersection' : cannot convert parameter 4 from 'Point **' to 'const Point **'
1> Conversion loses qualifiers
据我所知,当函数需要非 const 参数时,您不能将 const 参数提供给函数,但否则没关系。
有谁知道是什么问题??
谢谢。
【问题讨论】:
-
如果您声明参数
const Point *const *,它将起作用。 (嗯,它可以在 C++ 中工作,而不是在 C 中。)
标签: c++ compiler-construction casting constants