关于const

来源:互联网 发布:js四舍五入取整 编辑:程序博客网 时间:2024/04/30 20:48

前天想给类XSQLConstExpression定义一个+=操作,以const XSQLConstExpression&的类型调用参数,函数体中调用了该类的一个方法返回对该类某个变量的引用。出错~~

错误提示信息为this的类型不能由const XSQLConstExpression&转换为XSQLConstExpression,后来我把const去掉就通过编译了。 

下面我测试了一段代码,发现了真正的问题和解决方案:

class Value{publicint a;};
class Con
{
public:
    Value v;
    
//两个const必须都有
    const Value& GetValue() const
    
{
        
return v;
    }

    
void   SetValue(int avalue)
    
{
        v.a 
= avalue;
    }

public:
    Con(
int value)
    
{
        SetValue(value);    
    }


    Con
& operator+=const Con& para)
    
{
        Value x 
= para.GetValue();
        v.a 
+= x.a;        
        
return *this;
    }

}
;
原创粉丝点击