Tag: 符重载

Javascript:运算符重载

我已经使用JavaScript了几天,现在已经到了一个地步,我想重载我的定义对象的操作符。 谷歌search后,似乎你不能正式这样做,但有几个人在那里声称做了这个行动的一个冗长的方式。 基本上我做了一个Vector2类,并希望能够做到以下几点: var x = new Vector2(10,10); var y = new Vector2(10,10); x += y; //This does not result in x being a vector with 20,20 as its x & y values. 相反,我必须这样做: var x = new Vector2(10,10); var y = new Vector2(10,10); x = x.add(y); //This results in x being a vector with […]

使运营商“虚拟?

我需要使用虚拟<<运算符。 但是,当我试图写: virtual friend ostream & operator<<(ostream& os,const Advertising& add); 我得到编译器错误 错误1错误C2575:'operator <<':只有成员函数和基础可以是虚拟的 我怎么能把这个操作符变成虚拟的?

我如何重载C#中的方括号运算符?

DataGridView,例如,让你这样做: DataGridView dgv = …; DataGridViewCell cell = dgv[1,5]; 但在我的生活中,我无法find索引/方括号运算符的文档。 他们叫什么? 它在哪里实施? 它可以扔? 我怎样才能在自己的课堂上做同样的事情? ETA:感谢所有的快速回答。 简而言之:相关文件在“项目”属性下; 重载的方法是通过声明一个像public object this[int x, int y]{ get{…}; set{…} } public object this[int x, int y]{ get{…}; set{…} } ; DataGridView的索引器不会抛出,至less根据文档。 它没有提到如果你提供无效的坐标会发生什么。 ETA再次:好的,尽pipe文档没有提到它(顽皮的微软!),事实certificate,DataGridView的索引器实际上会抛出一个ArgumentOutOfRangeException,如果你提供了无效的坐标。 公平的警告。

运算符重载的基本规则和习惯用法是什么?

注意:答案是按照特定的顺序给出的,但是由于许多用户根据投票分类答案,而不是按照给定的时间排列答案,下面是答案的索引,按其最有意义的顺序排列: C ++中运算符重载的一般语法 C ++中运算符重载的三个基本规则 会员与非会员之间的决定 常见的运营商超载 指派操作员 input和输出操作符 函数调用操作符 比较运营商 算术运算符 arrays下标 指针types的运算符 转换运算符 重载新的和删除 (注意:这是一个Stack Overflow的C ++常见问题解答的入口,如果你想批评在这个表单中提供FAQ的想法,那么在这个开始所有这些的meta上的贴子将是这个地方的答案。那个问题在C ++聊天室中进行监控,常见问题解决scheme首先出现,所以你的答案很可能会被那些提出这个想法的人阅读)。