《關於C 中下標運算子的應用》

2021-07-10 10:24:02 字數 906 閱讀 4118

在c++中,兩個中括號組成乙個運算子-------中括號運算子,可以使用方法operator()來過載該運算子

中括號運算子,乙個運算元位於第乙個中括號的前面,另乙個位於兩個中括號中間。所以,在表示式city[0]中,city是第乙個運算元

0是第二個運算元。

假設opera是乙個string類物件

string opera("the magic flute");

則對於表示式opera[4],c++將查詢名稱和特徵標與此相同的方法:

string::operator(int i) ;

如果找到匹配的原形,編譯器將使用下面的函式呼叫來代替表示式opera[4]:

opera.operator(4);

opera物件呼叫該方法,陣列下標4將成為該函式的引數

下面是該方法的簡單實現

chat & string::operator(int i)

有了上面定義後,語句:

cout << opera[4];

將被轉換為

cout << opera.operator(4);

返回值是opera.str[4] (即字元m)  ,由此,公有方法可以訪問私有資料   

將返回值型別宣告為char&,便可給特定元素賦值。例如

string means("might");

means[0]='r';

第二條語句將被轉換為乙個過載運算子函式呼叫:

means.operator[0]='r';

這裡將r賦給方法的返回值,而函式返回的是指向mean.str[0]的引用,因此上述**等同於下面的**

means.str[0]='r';

**的最後一行訪問的是私有資料,但由於operator()是類的乙個方法,因此可以修改陣列的內容

最終的結果是right

C 下標運算子 過載

下標操作符 通常用於訪問陣列元素。過載該運算子用於增強操作 c 陣列的功能。下面的例項演示了如何過載下標運算子 include using namespace std const int size 10 class safearay int operator int i if i size cout...

下標運算子「 」的過載

在 c 中,在過載下標運算子 時,認為它是乙個雙目運算子,例如 x y 可以看成 雙目運算子 x 左運算元 y 右運算元。其相應的運算子過載函式名為 operator 假設 x 是某乙個類的物件,類中定義了過載 的 operator 函式,則表示式 x y 可被解釋為 x.operator y 下標...

Latex 大型運算子上下標

在單行公式中,latex有時會預設將連加連乘等公式的引數放在右側上下標位置,但是想直接放在符號上下位置,如何解決,可使用 limits命令解決,在原符號命令與上下標引數之間插入該命令即可。示例 p bigcup a i sum p a i sum p a i a j sum p a i a j a ...