[英]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.