c++ - 为什么 Visual C++ 接口(interface)不能包含运算符?

标签 c++ visual-c++ interface operator-overloading

根据 MSDN doc on __interface ,Visual C++ 接口(interface)“不能包含构造函数、析构函数或运算符。”

为什么接口(interface)不能包含运算符?返回引用的 get 方法之间有那么大的区别吗:

SomeType& Get(WORD wIndex);

和重载的索引器运算符?

SomeType& operator[](WORD wIndex);

最佳答案

__interface 修饰符是一个 Visual C++ 扩展,用于帮助实现 COM 接口(interface)。这允许您指定 COM“接口(interface)”并强制执行 COM 接口(interface)规则。

并且因为 COM 是 C 兼容定义,所以您不能有运算符、Ctor 或 Dtor。

关于c++ - 为什么 Visual C++ 接口(interface)不能包含运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029676/

相关文章:

c# - 会调用什么函数?

java - 用特定的实现类重写方法?

c++ - 如何编写两个类,其中一个依赖于另一个? C++

c++ - 在 Visual C++ 项目中获取链接错误

c++ - 如何使用 xlib 观看任何窗口移动?

c++ - 两个 COM 组件中重复的 ENUM 条目

c++ - Visual C++,带缩放、快照和捕获的 2D 绘图 Canvas 类

Java - 扩展接口(interface)

c++ - 修改另一个类的 vector 成员时出错

c++ - 禁用 "temporary to non-const reference"错误的 G++ 标志