Const类指针面向对象的bug

Ste*_*rst 1 c++ windows oop const visual-studio-2008

我有一个简单的例子,不能编译.我得到了关于const的以下警告

错误消息: 错误C2662:'Cfoo :: GetNum':无法将'this'指针从'const Cfoo'转换为'Cfoo&'转换失去限定符

class Cfoo 
{
    public:
        bool RunMe( const Cfoo * bar ) {
            int i = bar->GetNum() ; 
        }

        int GetNum() {
            return 7; 
        }
};   

int _tmain(int argc, _TCHAR* argv[])
{
    Cfoo a;

    Cfoo b;
    b.RunMe( &a); 

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

起初我认为这与GetNum没有返回const值有关.改变这似乎没有帮助.

我做错了什么?,建议,提示,例子,链接?

Joh*_*itb 9

GetNum 必须承诺它不会通过使它成为const成员函数来改变对象的值

class Cfoo 
{
    public:
        bool RunMe( const Cfoo * bar ) {
            int i = bar->GetNum() ; 
        }

        int GetNum() const { // !!!
            return 7; 
        }
};   
Run Code Online (Sandbox Code Playgroud)