簡體   English   中英

在C ++中,運算符[]()必須是成員函數嗎?

[英]In C++, must operator[] () be a member function?

在C ++中, operator []()必須始終是成員函數嗎? 如果是,為什么?

我在書中讀到“一個操作員必須是一個成員函數”

“C ++編程語言特別版”第287頁。

從C ++草案:

13.5.5訂閱[over.sub]

operator []應該是一個非靜態成員函數,只有一個參數。 它實現了下標語法

后綴表達式[表達式]

因此,如果T :: operator存在,並且如果運算符被重載決策機制選為最佳匹配函數,則下標表達式x [y]被解釋為類型為T的類對象x的x.operator(13.3.3) 。


我在規范中找不到它,但我假設原因是因為它預計會返回一個左值。

抓一點:它沒有意義。 它返回下標類型的左值而不是對象類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM