为什么Visual C ++接口不能包含运算符?
根据__interface上的MSDN文档,Visual C ++接口“不能包含构造函数,析构函数或运算符”。
为什么接口不能包含运算符? 在返回引用的get方法之间是否有很大区别:
SomeType& Get(WORD wIndex);
和重载的索引运算符?
SomeType& operator[](WORD wIndex);
__interface
修饰符是用于帮助实现COM接口的Visual C ++扩展。 这允许你指定一个COM接口并强制执行COM接口规则。
由于COM是C兼容的定义,因此不能有运算符Ctor或Dtors。
这看起来像一个.dll的东西。 您需要一个方法名称,以便您可以使用其他不支持运算符重载的语言,例如C
接口不能包含运算符,因为运算符不能是虚函数。 基本上接口是其他类派生自的基类。
编辑:在阅读了这些评论和思考后,我意识到这是多么愚蠢。 请原谅我急切的手指。 运营商与其他功能没有区别。 一个更可能的原因与从公共基类派生的__interface生成类有关,并且需要dll具有它们在本地使用的所有构造函数,析构函数和赋值运算符。
链接地址: http://www.djcxy.com/p/73141.html