VS2017给我错误:
它与const
关键字有关。但是我的类方法不会更改对象变量,因此它是常量。 m_points
和m_pointsIndex
是
std::vector< std::shared_ptr < DB::Point > > m_points;
std::map<size_t, size_t> m_pointsIndex;
方法是
AcGePoint3d Database::getPoint(size_t index) const
{
AcGePoint3d point;
point.x = m_points[m_pointsIndex[index]]->x();
point.y = m_points[m_pointsIndex[index]]->y();
point.z = m_points[m_pointsIndex[index]]->z();
return point;
}
我所有的数据都存储在SQLite数据库中。所有对象都使用ID作为FOREIGN KEY相互引用。
在应用程序中,我将所有点存储在std::vector
中,以方便循环。并使用std::map
将ID从SQLite绑定到矢量索引。
在getPoint(size_t index)
方法中,索引是SQLite数据库中的点ID。我使用m_pointsIndex[index]
将数据库ID转换为向量索引,并使用它在m_points
中查找点。从点开始,我得到x,y和z坐标并创建新点以返回。所以我不修改任何成员变量。那么为什么方法不能恒定呢?