小编use*_*763的帖子

带下标运算符的重载赋值运算符

我重载了下标运算符和赋值运算符,我试图Array x; x[0]=5; 通过重载下标运算符来获得赋值运算符示例的正确值, 我可以获得值 0,但是当我重载赋值运算符时,它会进行赋值,但它不使用我的重载函数,因为可用2 的值应该是 5。

class Array
{

public:
    int *ptr;
    int one,two;
    Array(int arr[])
    {
        ptr=arr;
    }

    int &operator[](int index)
    {
        one=index;
        return ptr[index];
    }
    int & operator=(int x){
        two=x;
        return x;
    }   
};

int main(void)
{
    int y[]={1,2,3,4};
    Array x(y);
    x[1]=5;
    cout<<x[0]<<endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ overloading operator-overloading subscript assignment-operator

4
推荐指数
1
解决办法
1万
查看次数