问题标签 [assignment-operator]

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.

0 投票
4 回答
995 浏览

c# - c# 赋值运算符 &=

如果我有以下布尔:

以下三行代码是否会成功存储相同的结果:

我发现一篇文章指出 1 是 2 的快捷方式 - 但 2 与 3 相同,或者我的应用程序会在执行此行时爆炸...

0 投票
3 回答
7249 浏览

c++ - 赋值运算符 - 自赋值

编译器生成的赋值运算符是否防止自赋值?

即使类成员不是指针类型,我是否总是需要防止自赋值?

0 投票
2 回答
5778 浏览

c++ - 模板赋值运算符重载之谜

我有一个简单的 struct Wrapper,以两个模板化的赋值运算符重载为特征:

然后我声明a和b:

赋值ba使用上面的非常量模板化赋​​值运算符重载,并显示数字“2”。

令我困惑的是:如果我声明cand d

和assign dto c,两个赋值运算符重载都不用,也不显示输出;因此调用了默认的复制赋值运算符。为什么分配dc使用提供的 const 重载赋值运算符?或者相反,为什么分配ba 使用默认的复制分配运算符?

0 投票
5 回答
432 浏览

c++ - C++ 赋值运算符关于继承的问题

我有两个类——基类 A 和派生类 B——我写了这个

如果我还没有覆盖任何分配运算符,实际上会发生什么?这是否只是将 obj2 的 A 部分复制到 obj 中?这是正确的,还是编译器只是原谅的错误?IS_A 关系是否允许执行此语句?任何帮助是极大的赞赏。

0 投票
1 回答
455 浏览

perl - 用于逻辑定义或的 bash 运算符

是否有与 Perl 的逻辑定义或等效的 Bash 运算符?类似于:

或者

0 投票
6 回答
214 浏览

c++ - 返回中使用什么构造函数或运算符(C++)

我运行此代码来试验复制构造函数和赋值运算符

并发现为什么没有出现任何return x; 消​​息? 不应该调用复制构造函数或 operator= 吗?

这是输出:

0 投票
2 回答
3776 浏览

vb.net - VB.NET:运算符'='未定义......对于相同类型的变量和对象?

好吧,我在这里很困惑。我有一堂课……说MyClass。它具有我的类型的另一个类的几个属性,比如说MyHelperClass(以及其他属性)。

我正在执行以下操作:

*其中 .p# 是一些属性,.sv# 是一些有效值。.h# 是类型的属性,MyHelperClassgetHelperClass(a#) 返回所述类的实例。

现在,我有一个奇怪的地方,h1 的赋值语句完美。没问题。但是,h2 的赋值语句给了我以下蓝色曲线错误:

Operator '=' is not defined for types myLib.MyHelperClass and myLib.MyHelperClass.

我根本没有收到这个错误!我什至不知道从哪里开始解决这个问题。帮助!

201105.06 0305: h1 类型的签名是List(Of myLib.Address),其中Address是一个非常基本的类,具有典型的地址字段(姓名、地址、城市、州、邮编等)。的返回类型getHelperClass也是List(Of myLib.Address).

正如 SSS 在他的回答中暗示的那样,如果我将它用于没有运算符的类的相等性测试,我希望=不会以“自然”方式工作,但是我将它用作赋值运算符,而不是相等,我可以看不出有什么问题。我期望将结果getHelperClass分配给 h2。但相反,它告诉我=没有为该类型定义。是否有可能由于某种原因,编译器将其解释为=(EQUALS)而不是=(ASSIGN)

至于评论那条线并且它发生在第一条线上,我需要等到明天我回到办公室才能检查。会回来汇报的。

0 投票
2 回答
100 浏览

c++ - 用户定义的构造分配的原语

抱歉标题模糊,我似乎遗漏了一些东西。

我犹豫要不要发布这个,因为它看起来很基础,但我无法让它工作。我的 IDE 告诉我以下内容不正确。我有一个名为 IRatio 的类,我希望它可以与 long double 互换。

现在我知道以下几行有效:

然而,令我惊讶的是,这条线不起作用:

我怎样才能让它工作?我假设在这种情况下调用了复制构造函数?或者即使是赋值运算符,我也不介意!我知道 std::string 可以做到。

谢谢

0 投票
6 回答
54004 浏览

php - PHP's =& operator

Are both these PHP statements doing the same thing?:

0 投票
6 回答
1550 浏览

c++ - c ++:大对象的过度复制

虽然已经有很多关于 SO 上的复制构造函数/赋值运算符的问题,但我没有找到适合我的问题的答案。

我有一个像

现在似乎有一些相当多的复制正在进行(基于配置文件数据)。所以我的问题是如何最好地解决这个问题?

我应该实现自定义复制构造函数/赋值运算符并使用交换吗?或者我应该定义自己的交换方法并使用它(在适当的情况下)而不是赋值?

由于我不是 C++ 专家,因此非常感谢展示如何正确处理这种情况的示例。

更新:看来我不是很清楚..让我试着解释一下。该程序基本上是一个即时广度优先搜索程序,对于所采取的每一步,我都需要存储有关该步骤(即Foo类)的元数据。现在的问题是(通常)有指数级的步骤,所以你可以想象需要存储大量这些对象。据我所知,我总是通过(const)引用。每次我从图中的节点计算后继者时,我都需要创建和存储一个 Foo 对象(但是,在处理这个后继对象时,一些数据成员将被添加到这个 foo 中)..

我的个人资料数据大致如下所示(我没有这台机器上的实际数字):

所以你可以看到我在保存这些元数据上花费的时间几乎和我在图表中搜索所花费的时间一样多。哦,FooStore 保存Foo在一个google::sparse_hash_map<long long, Foo, boost::hash<long long> >.

编译器是 g++4.4 或 g++4.5(我不在我的开发机器上,所以我现在无法检查)..

更新 2我在构造后将一些成员分配给 Foo 实例,例如

我想明天,我应该把它改成使用交换方法,这肯定会改进一点..

如果我不完全清楚我想要实现什么语义,我很抱歉,但原因是我不太确定。

问候,

莫腾