繁体   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