问题标签 [operator-keyword]
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++ 将自定义类型的转换运算符重载为 std::string
我希望有人能够回答为什么以下不起作用。不过请耐心等待,我仍然是个菜鸟……我只是无法弄清楚为什么会出现以下问题
给我一个编译时错误:
如果我不尝试分配
它确实有效。
我已经尝试了几个小时甚至理解错误消息,但最让我困惑的是它确实适用于 char*。
我很感激任何提示。谢谢!马库斯
javascript - 为什么我需要为 JavaScript 中的 `Date` 实例添加 `new` 关键字?
我理解行为上的差异。Date()
返回一个表示当前日期的字符串,并new Date()
返回我可以调用其方法的 Date 对象的一个实例。
但我不知道为什么。JavaScript 是原型Date
的,函数和对象也是原型,其成员函数(方法)也是对象。但是我还没有编写或阅读过任何以这种方式运行的 JavaScript,我想了解其中的区别。
有人可以向我展示一些具有方法的函数的示例代码,返回一个带有 new 运算符的实例,并在直接调用时输出一个 String 吗?即这样的事情是怎么发生的?
非常具体的要求,我知道。我希望这是一件好事。:)
c++ - 运算符 << C++ 中的重载
这是我的代码,出现错误。错误:ostream:不明确的符号。
任何人都可以帮助我。
c++ - 运算符重载
我创建了一个 myString 类,我正在尝试运行以下代码:
我的问题:
- 为什么“你好”没有被打印出来?
- 为什么该行
s=k
会导致链接器错误?
这是错误:
LINK : c:\users\perry\documents\visual studio 2010\Projects\inheritance\Debug\inheritance.exe 未找到或未由最后一个增量链接构建;执行完整链接 1>main.obj : 错误 LNK2019: 无法解析的外部符号 "class std::basic_ostream > & __cdecl operator<<(class std::basic_ostream
&,class myString *)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@PAVmyString@@@Z) 在函数 "public: class myString & __thiscall myString ::operator=(class myString &)" (??4myString@@QAEAAV0@AAV0@@Z) 1>c:\users\perry\documents\visual studio 2010\Projects\inheritance\Debug\inheritance.exe:致命错误LNK1120:1 个未解决的外部因素
谢谢,李
overloading - 重载解引用运算符
我是 C++ 新手,我对重载取消引用运算符有疑问。我正在构建一个供应用程序使用的内存对象存储。数据存储映射到应用程序内存空间,应用程序可以使用取消引用运算符直接读取/修改对象。我计划提供如下描述的接口
在运算符重载函数中,有没有办法知道对象是被读取还是被写入?欢迎提出建议。
c++ - C++:纯虚赋值运算符
为什么如果我们在基类中有纯虚拟赋值运算符,那么我们在派生类上实现该运算符,它会在基类上给出链接器错误?
目前我在http://support.microsoft.com/kb/130486上只有以下解释,它说这种行为是设计使然,因为正常的继承规则不适用。
我不清楚,为什么设计会产生链接器错误?有人可以给我更清楚的解释吗?
编辑:添加了发生错误的简化代码:
如果没有 __declspec(dllexport)
和/或没有基类上的纯虚拟运算符 = 声明,代码将无错误地编译。
没有__declspec(dllexport)
赋值后*bd1 = *bd2;
,d1::memberB 为 1,但__declspec(dllexport)
d1::memberB 保持不变
有__declspec(dllexport)
, 和没有纯虚声明,在赋值后*bd1 = *bd2;
d1::memberB 保持不变
c++ - 交换运算符重载 + 2 个不同的对象
我有 2 个表示矩阵的类:
1. RegularMatrix - O(n^2) 表示
2. SparseMatrix - 表示为链表(不带零)的矩阵。
可以说我有:
我希望能够做到:
并且:
所以我重载了 + 运算符。我的问题是,因为我希望加法是可交换的(a+b = b+a),我是否需要实现 2 个重载,每种情况一个?
还是编译器自行决定的一般形式?
谢谢
c++ - 如果参数很复杂,* 和 & 运算符在做什么?
简单来说就是
相当于
或者
或者
或者你真的应该把明确的括号放在那里只是为了安全吗?
java - 关于java中==运算符的问题
在前面的代码中 s7 == s8 和 s1 == s10 给出错误。有人可以解释一下吗,在 s7 = s7.concat ("llo"); 中实际发生了什么 和 s10 = s10 + "llo";我了解 == 运算符检查引用和 equal() 检查对象的内容。但我需要知道为什么 s7 和 s10 引用变量位模式与 s8 和 s1 不同。如果这些东西与编译时生成的字符串和运行时生成的字符串有关,那么我如何识别它是编译时字符串还是运行时字符串?
java - 在运行时确定可用的运算符
我希望能够在运行时检索对象的可用运算符,可能与 getMethod() 调用类似。
特别是,我需要能够在运行时调用对象的小于/大于运算符。
基本上,我有一堆被转换为 Object 对象类型的原语。我需要在运行时对它们进行比较。(我知道被比较的对象将是相同的原始类型,并且已经实现了我自己的类型检查)。
或者......也许有一种方法可以以编程方式将这些对象转换回它们的原始类型,并使用它们的原生比较运算符......不知何故?
感谢您的任何帮助。