问题标签 [operator-overloading]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 C++ 中定义友元函数和运算符重载
我想了解 C++ 中的友元函数和运算符重载以及它们是如何工作的?与程序?
c++ - 为什么你不能超载'。' C++ 中的运算符?
能够重载 . C++ 中的运算符并返回对对象的引用。
你可以超载operator->
,operator*
但不能operator.
这有技术原因吗?
c# - 我可以在 C# 中定义类似 Perl 的绑定运算符 (=~) 吗?
我真的很喜欢能够在 Perl 中使用 =~ 和 !~ 来根据正则表达式计算字符串。我想将此功能移植到 C#,但看起来,虽然您可以重载运算符,但您不能创建新的运算符。
我正在考虑扩展字符串类型以提供 Match() 方法,该方法允许我传递正则表达式以进行评估,但我想知道有更好的方法。
有人有更好的解决方案吗?
c++ - 重载。-> 和 :: 用于多平台类
假设我有三个窗口类,一个用于我想要支持的每个操作系统:
- 窗口窗口
- OSX窗口
- Linux窗口
它们都继承自Window类。这也是您实例化的类。Window 类具有 . -> 和 :: 运算符重载,并且根据运行的操作系统(基于 IFDEF),它会将 this 指针转换为相关类。
我想要做的只是创建一个 Window 实例,而不知道正在运行什么操作系统。这种想法是不是很错误?沮丧是危险的吗?有没有更好的方法来做到这一点?
我知道有图书馆可以做到这一点,但我想自己尝试一下。
我想最简单的方法是创建一个工厂。但是这样的事情可以做到吗?
c++ - 为原始类型重载 operator<<。那可能吗?
嘿。是否可以为原始类型重载 operator<< ?Fx 可以说我想写一个 std::endl 每次想写一个 int。我可以为 int 重载 operator<<,以便它自动将 std::endl 放到输出中吗?我试过这个,
但它不起作用。我不记得编译器错误消息,但我认为我让运算符重载所有错误的方式。我尝试以这种方式调用上面的重载运算符<<,
但它根本不起作用。也许我不能重载 POD 类型?
c++ - 使用 C++ 模板封装简单类型
我希望为 C++ 中的所有简单类型添加功能。
我想编写一个模板类,它将要封装的类型作为模板参数,然后定义所有运算符,以便封装的类与它封装的简单类型完全一样。
像这样的东西:
问题是我确信必须处理大量细微差别并编写专门的模板运算符;那么是否有任何地方已经完成了这项工作,以便我可以使用它呢?
Boost 太大且太复杂,无法放入我的项目中,但如果那里有这样的类,我可以查看它以获取指针 - 如果有,它的名称是什么?
c++ - operator>= 重载的奇怪行为
我在 C++ 中使用运算符重载时有一个奇怪的行为。我有一堂课,我需要检查它的内容是否大于或等于 long double。我重载了 >= 运算符来进行这个检查,我的声明如下:
我不得不说,我的班级也有一个 cast-to-long-double 运算符,它仅在某些条件下无例外地工作。现在,当我使用此运算符时,编译器抱怨 operator>= 的使用不明确,替代方法是:
- 矿。
- 内置的
operator>=(long double, int)
.
现在,我如何强制程序使用我的运算符?
c++ - 编译器未创建模板化 ostream << 运算符
我有一个类,在头部定义为:
在一个实现文件中,我有:
这一切看起来都很犹太。但是,当我尝试使用此运算符(即 std::cout << MyClass())时,我收到以下链接器错误:
我很惊讶编译器没有自动为我生成这个......关于我做错了什么的任何建议?
c++ - 重载新/删除
我在我的程序中做了一个小内存泄漏查找器,但是我重载 new 和 delete(以及 new[] 和 delete[])的方式似乎没有做任何事情。
我重载的方式new
如上面的代码片段所示。我想这是运营商返回 void* 的问题,但我不知道该怎么做。
c# - 如何编写 C# 类来针对 0 和 null 进行测试
背景:我有一个用 C# (2005) 编写的自定义类,代码类似于以下内容:
使用Savepoint sp声明变量后;我可以测试看看是否已经用类似于以下的代码实例化:
问题:是否可以以某种方式重载类运算符,以便我也可以使用以下语法:if (sp) {...}或if (sp != 0) {...}
PS:除了习惯的力量之外,我没有真正的理由想要写 if (sp)。