代码改变世界

assignment operator:对class中const成员变量赋值

2010-09-26 19:19  wansishuang  阅读(273)  评论(0编辑  收藏  举报
#include <iostream>
using namespace std;

class Test
{
public:
    Test(int _a):a(_a)
    {

    }
    Test& operator=(const Test& ra)
    {
        if(&ra != this)
        {
            const_cast<int &>(a) = ra.a;
        }
        return *this;

    }
    //for test
    int getA()
    {
        return a;
    }
private:
    const int a;
};

int main()
{
    Test a(1);
    cout<< a.getA() <<endl;
    Test b(2);
    cout<< b.getA() <<endl;
    b = a;
    cout<< b.getA() <<endl;
}