c/c++ error C2663 overloads have no legal conversion for 'this' pointer

这个错误很大可能是由 const 类型的变量调用了非const类型的函数。

例如:

class A
{
public:
    int size() {// return somthing};
};

class B
{
public:
     int getSize(const A& a)
     {
           // error. a是const类型,必须调用const function.
           return a.size()
     }
};

改为:

class A
{
public:
    int size() const 
    {
          // return something.
    }
};

class B
{
public:
     int getSize(const A& a)
     {
           // success
           return a.size()
     }
};

这样就没有错误了.

  • 本文作者: 帐前卒
  • 本文链接: http://chillyc.info/2012/7857605/
  • 版权声明: 本博客所有文章除特别声明外,只能复制超链接地址,且必须注明出处!