"&":对绑定成员函数表达式的非法操作。从关键点矢量 OpenCV 获取容量

'&': illegal operation on bound member function expression. Get capacity from KeyPoint vector OpenCV

本文关键字:关键点 容量 获取 OpenCV 操作 非法 绑定 成员 表达式 函数      更新时间:2023-10-16

我的项目有问题,就像我在主题中写的那样。我想从KeyPoint vector的表中得到容量。请告诉我,我的问题在哪里?

我的代码

class SidesOfFigure
{
public:
    SidesOfFigure() {
    };

    ~SidesOfFigure() {
    };
    //sideNumber == 0 => top
    //sideNumber == 1 => down
    //sideNumber == 2 => left
    //sideNumber == 3 => right
    void setSideOfFigure(vector <KeyPoint> keyPoints, int sideNumber) {
        sideOfFigure[sideNumber] = keyPoints;
    }
    uint64 getCapacityOfSide(int numberOfSide) {
        try
        {
            return sideOfFigure[numberOfSide].capacity;
        }
        catch (const std::exception&)
        {
            throw exception("Illegal number!");
        }
    }
private:
    vector <KeyPoint> sideOfFigure[4];
};

虽然错误消息本身比较奇怪,但问题是capacity是std::vector的成员函数,而不是成员变量。所以你只需要添加一个括号来命名它:sideOfFigure[numberOfSide].capacity() .