我在Forme_Composee.cpp中有此代码

const Forme_Simple& getFormeSimple(int i) const
{
    return groupe[i];
}

const vector <Forme_Simple*> getGroupe() const
{
    return groupe;
}


我在Forme_Composee.h中有这个:

private:
    vector <Forme_Simple*> groupe;


而visual告诉我,结尾处的const是“非成员函数不允许的”,而groupe是“未定义的”,但是groupe被我的所有其他函数接受。请帮助我,我没有找到满意的答案!

最佳答案

您必须说函数属于哪一类。就是
错误:

const Forme_Simple& getFormeSimple(int i) const
{
    return groupe[i];
}


正确:

const Forme_Simple& Forme_Composee::getFormeSimple(int i) const
{
    return groupe[i];
}


顺便说一句,也用return groupe[i];替换return *(groupe[i]);

出现特定错误消息的原因是第二个const表示该函数不会更改任何类对象范围的变量,但是您将函数定义为不属于任何类的一部分。

10-01 10:59