可能的重复:
为什么将(指向非常量指针的指针)转换为(指向指向常量指针的指针)是不合法的
我有一个功能:
bool isCirclePolygonIntersection(const Point*, const int*, const Point*,
const Point**, const int*);
我试着这样称呼它:
isCirclePolygonIntersection(p, &r, poly_coord, poly, &poly_size)
where 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
争论,但其他方面都很好。
有谁知道是什么问题吗?
谢谢。
你是对的;你can隐式转换T *
to a const T *
。然而,你cannot隐式转换T **
to a const T **
。请参阅 C 常见问题解答:http://c-faq.com/ansi/constmismatch.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)