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()
     }
};

这样就没有错误了.

你可能感兴趣的:(c,Class)