程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 第14章 重載操作符與轉換(4)

第14章 重載操作符與轉換(4)

編輯:C++入門知識

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的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved