错误:没有运算符“ []”与这些操作数匹配

时间:2018-12-28 10:31:15

标签: c++

VS2017给我错误:

1

它与const关键字有关。但是我的类方法不会更改对象变量,因此它是常量。 m_pointsm_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坐标并创建新点以返回。所以我不修改任何成员变量。那么为什么方法不能恒定呢?

0 个答案:

没有答案