Visual Studio C++出现奇怪错误
Strange error @ Visual Studio C++
this:
Polygon::Polygon(const Polygon & polygon) {
for (vector<Point*>::iterator it = polygon._points.begin(); it != _points.end(); it++)
_points.push_back(*it);
}
给我一个错误
C2440 'initializing': cannot convert from 'std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<Point *>>>' to 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<Point *>>>
当这起作用时:
Polygon::Polygon(const Polygon & polygon) {
vector<Point*> points = polygon._points;
for (vector<Point*>::iterator it = points.begin(); it != _points.end(); it++)
_points.push_back(*it);
}
您将const Polygon
作为参数。在第一种情况下,迭代器因此是const。在第二种情况下,您将const polygon.vvector分配到一个局部的非常量向量中,这样就可以获得一个非常量迭代器。
看看你的代码实际在做什么:你取了一个你承诺不会修改的多边形,并试图在其中插入点。既然这就是你正在做的,最好把const从参数中去掉。
相关文章:
- Visual Studio mkl_link_tool.exe链接错误
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- 设置 Visual Studio for MPI: 找不到标识符错误
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 第三方 API 中的编译错误 - Visual Studio
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- Visual Studio 2019在内置库中存在错误
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 包含在 <WinSock2> Visual Studio 2015 中时出现错误
- 编译器错误(英特尔并行工作室 2019 与 Visual Studio 社区 2019)
- 默认/样板代码在Visual Studio 2017中给我错误.E1574.虚幻.但构建成功了
- Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的生成工具
- 如何在类模板的成员函数中正确调用函数对象?正在生成 Visual Studio 编译器错误 C2440
- C++ Visual Studio 错误:名称后跟'::'必须是类或命名空间名称 (DirectX 11)
- 错误C++在Visual Studio 2019中使用numeric_limits的长双精度最小值/最大值
- 如何解决Visual Studio C++ 'xmemory'文件中的错误?
- Microsoft Visual Studio 2019交叉编译CMake库 - 有效,但存在SEG错误
- 使用Visual Studio 2012编译时,此代码会给我错误,但是使用代码块就可以了