当前位置:编程学习 > C/C++ >>

第14章 重载操作符与转换(4)

14.4 赋值操作符

Class1& operator=(int i) 

    counter = i; 
    return *this; 

赋值操作符可以重载。无论形参为何种类型,赋值操作符必须定义为成员函数,这一点与复合赋值操作符有所不同。
复制必须返回对*this的引用。
一般而言,复制操作符与复合赋值操作符应返回左操作数的引用。
14.5 下标操作符
下标操作符必须定义为类成员函数
1. 提供读写访问
定义下标操作符比较复杂的地方在于,它在用作赋值的左右操作数时都应该能表现正常。下标操作符出现在左边,必须生成左值,可以指定引用作为返回类型而得到右值。只要下标操作符返回引用,就可用作赋值的任意一方。
可以对const和非const对象使用下标也是个好主意。应用于const对象时,返回值应为const引用,因此不能用作赋值的目标。
类定义下标操作符时,一般需要定义两个版本:一个为非const成员并返回引用,另一个为const成员并返回const引用。
2.原型下标操作符

class Foo 

public: 
    Foo(int len) 
    { 
        vec = vector<int>(len); 
    } 
    int &operator[](const size_t index) 
    { 
        return vec[index]; 
    } 
    const int &operator[](const size_t index) const 
    { 
        return vec[index]; 
    } 
private: 
    vector<int> vec; 
}; 

摘自 xufei96的专栏

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,