1. 程式人生 > >c++下標運算子的過載

c++下標運算子的過載

在整形陣列ainteger中定義了下標運算子,這種下標運算子能檢查越界的錯誤。現在使用它:
  ainteger ai(10);
  ai[2]=3;
  int i=ai[2];
對於ai[2]=3,他呼叫ai.operator(2),返回對ai::a[2]的引用,接著再呼叫預設的賦值運算子,把3的值賦給此引用,因而ai::a[2]的值為3注意,假如返回值不採用引用形式,ai.operator(2)的返回值是一臨時變數,不能作為左值,因而,上述賦值會出錯。對於初始化i=ai[2],先呼叫ai.operator(2)取出ai::a[2]的值。然後再利用預設的複製建構函式來初始化i.