为何无法返回this!该如何处理

为何无法返回this!C/C++ codeclass Sales_item{public:Sales_item & func(Sales_item &si)constSales_ite

为何无法返回this!

C/C++ code
class Sales_item{    public:        Sales_item & func(Sales_item &si)const;        Sales_item & func(Sales_item &si);        Sales_item():ival(1){        }    private:        int ival;};Sales_item &Sales_item::func(Sales_item &si)const{        return *this;//无法返回this}Sales_item &Sales_item::func(Sales_item &si){        return *this;}

这是什么问题啊,半天没想明白!!

[解决办法]
const Sales_item &Sales_item::func(Sales_item &si)const{

return *this;//无法返回this
}
[解决办法]
探讨

引用:

const Sales_item &Sales_item::func(Sales_item &si)const{

return *this;//无法返回this
}

为什么要在最前面加const才能返回this,下面的函数没有加const却能返回this!!!