assignment-operator相关内容

JS中的赋值操作符是绑定还是突变?

我想了解的是,JavaScript中的赋值操作符是否应该用作(重新)绑定,而不是突变。换句话说,给定以下条件: let x = 10; x = 20; 我想了解第二行是否导致编码值10的位被修改,以便编码值20,或者-如果x标识符与其他(可能是新的)内存块反弹,该内存块被初始化为包含值20。 后一种选择是我找到的常见解释(例如,在中 ECMA-262-5详细说明)。这种解释的好处是,它 ..

什么是复制和交换成语?

这个成语是什么,应该在什么时候使用?它解决了哪些问题?使用 C++11 时习语会发生变化吗? 虽然在很多地方都提到过,但我们没有任何单数的“它是什么"问题和答案,所以在这里.以下是之前提到的部分地点列表: 你最喜欢的 C++ 编码风格成语是什么:复制交换 复制C++ 中的构造函数和 = 运算符重载:通用函数是否可行? 什么是复制省略和它如何优化复制和交换习语 C++:动态分配对象 ..

隐式复制构造函数/赋值运算符的行为

我有一个关于 C++ 标准的问题. 假设您有一个带有用户定义的复制构造函数和赋值运算符的基类.派生类使用编译器生成的隐式类. 派生类的拷贝/赋值是否调用用户定义的拷贝构造函数/赋值运算符?还是需要实现调用基类的用户定义版本? 感谢您的帮助. 解决方案 如果派生类没有声明复制构造函数,并且会声明隐式的(12.8/4《复制类对象》)——即使基类有一个用户定义和定义的复制构造函 ..
发布时间:2022-01-20 18:31:14 C/C++开发

使用 := 从函数内部分配的 data.table 对象未打印

我想在函数中修改 data.table.如果我在函数中使用 := 功能,则只为第二次调用打印结果. 看下图: 库(data.table)mydt 当我只调用函数时,不会打印表格(这是标准行为.但是,如果我将返回的 data.table 保存到新对象中,则不会在第一次调用,只为第二次调用. myfunction(mydt) # 什么都不打印结果 ..
发布时间:2022-01-13 18:37:56 其他开发

如何初始化 CArray<CClass*> 的默认值具有空 CArray 的函数参数?

我知道我可以用 std::vector 做得更好,但是我正在搞乱的应用程序已经在很多相关的方面有一堆 CArray 参数函数...我暂时不会全部更改! 我只是想定义一个空的 CArray - pointers 到 CClass 的数组,所以问题 不能在 CClass 构造函数上——作为函数参数的默认值. 方法 1 如果我尝试使用 赋值运算符 和 默认构造函数: void Fun ..
发布时间:2022-01-12 15:06:18 C/C++开发

“错误:左值需要作为赋值的左操作数";在条件运算符中

我是 C 新手,今天我学会了“?"运算符,它是 if-else 语句的短类型.但是,当我执行此代码时: int b;整数 x;b=3 我收到一个错误“错误:左值需要作为赋值的左操作数".我不明白为什么会这样.我心目中的过程是程序先给x赋值34,然后再给b赋值x的值,即34.另一方面,我可以将语句用作 int b;整数 x;b=3 没有任何错误.我看了看我的书,但没有任何帮助.为什么我不能使 ..
发布时间:2021-11-30 12:36:29 其他开发

需要私有化单例类中的赋值运算符

有人可以证明在单例类实现中私有化赋值运算符的必要性吗? 制作Singleton&它解决了什么问题operator=(Singleton const&); private? class Singleton {民众:静态单例&实例() {static Singleton theSingleton;返回单身人士;}私人的:单例();//ctor隐藏Singleton(Singleton cons ..
发布时间:2021-11-30 12:36:21 C/C++开发

Javascript 字符串赋值运算符

为什么我可以在字符串上使用 +=,但我不能在它上面使用 -=? 例如... var test = "测试";var arr = "⇔"测试 += arr;警报(测试);//显示“Test⇔"测试-= arr;警报(测试);//显示“NaN" 解决方案 简短的回答是 - 它没有定义为使用字符串. 更长的答案:如果您在两个字符串上尝试减法运算符,它将首先将它们 ..
发布时间:2021-11-30 12:36:12 前端开发

派生类的虚拟赋值运算符未被调用

我对 C++ 还很陌生,正在尝试处理虚拟赋值.下面的程序由一个具有两个数据成员的抽象基类和一个具有一个数据成员的派生类组成.当我设置一个指向派生对象的抽象指针时,程序使用 operator= 的抽象版本而不是派生版本,即使它们都被声明为“虚拟".我在这里做错了什么? 提前致谢, 杰 #include #include 类摘要{受保护:字符 * 标签;国际评级;民众:Abstract( ..
发布时间:2021-11-30 12:36:04 C/C++开发

为什么我们可以改变“const"的值?限定变量?为什么允许指针,但不允许赋值?

考虑以下 2 个程序 prog1 和 prog2.这里如果我尝试更改 const 限定变量 i 的值 使用指针 ptr,我收到警告(不是错误)“初始化丢弃来自指针目标类型的限定符|",但程序仍然运行并显示新值.但是如果我尝试使用赋值语句在第二个程序中更改 i 的值,我会得到 error(不是警告)assignment of read- 仅变量 'i'|. 这里是由这个前提引起的混淆: ..
发布时间:2021-11-30 12:35:49 其他开发

Scala对现有变量的多重赋值

我可以做类似的事情 def f(): Tuple2[String, Long] = ...val (a, b) = f() 如果变量已经存在呢?我在过滤器上运行相同的数据集,我不想链接它们(长名称等).这是我尝试过的,但它抱怨期待 ;而不是最后一行的 =: var a = ...初始化此数据var b = ...其他一些初始化(a, b) = g(a, b)//错误:预期 ';'但发现 '= ..
发布时间:2021-11-30 12:35:33 其他开发

赋值运算符 - 自赋值

编译器生成的赋值运算符是否会防止自赋值? class T {整数 x;民众:T(int X = 0): x(X) {}};int main(){塔 (1);一 = 一;} 即使类成员不是指针类型,我是否总是需要防止自赋值? 解决方案 编译器生成的赋值运算符是否会防止自赋值? 不,它没有.它仅执行成员方式的复制,其中每个成员都由其自己的赋值运算符(也可能是程序员声明的或编译器生 ..
发布时间:2021-11-30 12:35:22 C/C++开发

编译器何时为类的特殊成员提供定义?

我知道当我定义一个空类并且根本不提供任何声明时,编译器将为默认和复制构造函数、析构函数和复制赋值运算符提供定义. 这有什么规则?编译器什么时候不提供复制构造函数?移动构造函数和移动赋值运算符呢? (例如:如果我的类具有像 int& 这样的引用成员,编译器将不会为任何赋值运算符提供定义.这种情况何时会发生?) 解决方案 编辑: 在 C++11 中,它比隐式声明或不隐式声明更复杂. ..
发布时间:2021-11-30 12:35:14 C/C++开发

避免在复制构造函数和 operator= 中重复相同的代码

在 C++ 中,当类包含动态分配的数据时,显式定义复制构造函数、operator= 和析构函数通常是合理的.但是这些特殊方法的活动是重叠的.更具体地说,operator= 通常首先进行一些破坏,然后进行类似于复制构造函数中的处理. 我的问题是如何在不重复相同代码行且不需要处理器做不必要的工作(如不必要的复制)的情况下以最佳方式编写此代码. 我通常会得到两种帮助方法.一种用于建造,一种用 ..