函数的返回值当左值

来源:互联网 发布:java住户信息管理系统 编辑:程序博客网 时间:2024/06/12 19:42

如果函数的返回值要当左值,那么必须返回一个引用:

class Array{private:    int mLength;    int* mSpace;public:    Array(int length)    {        if (length < 0)        {            length = 0;        }        mLength = length;        mSpace = new int[mLength];    }    Array(const Array& obj)    {        mLength = obj.mLength;        mSpace = new int[mLength];        for (int i = 0; i < mLength; i++)        {            mSpace[i] = obj.mSpace[i];        }    }    int length()    {        return mLength;    }    void setData(int index, int value)    {        mSpace[index] = value;    }    int getData(int index)    {        return mSpace[index];    }    ~Array()    {        mLength = -1;        delete[] mSpace;    }public:    int& Array ::operator[](int i)    {        return mSpace[i];    }};

首先定义对象:

    Array a1(10);

重载之后:

    a1[i] = i;

其中a1[i ] 是一个函数

这里写代码片

如果 int & Array ::operator[]( int i) 返回的不是引用的话,那么 a1 [ i ] 无法作为左值。

0 0
原创粉丝点击