Tag: 赋值运算符

c ++中私有拷贝构造函数的用法是什么?

为什么人们定义一个私人拷贝构造函数? 何时使复制构造函数和赋值运算符私有一个好的devise? 如果在类中没有成员是指向唯一对象(如文件名)的指针或句柄,那么其他情况下,私有拷贝构造函数是一个好主意? 同样的问题适用于赋值运算符。 考虑到大多数C ++围绕着对象的复制和引用而传递,有没有涉及私有拷贝构造函数的好devise?

这个赋值运算符之后的和号是什么意思?

我正在阅读关于“五规则”的这个很好的答案 ,我注意到了一些我不记得以前看到的东西: class C { … C& operator=(const C&) & = default; C& operator=(C&&) & = default; … }; “复制赋值”操作符和“移动赋值”操作符在“ = default前放置的&字符的用途是什么? 有没有人有这个参考?

为什么C#中没有|| =或者&& =运算符?

对于所有逻辑运算符,Shift运算符,加法运算符和所有乘法运算符,我们都有等价的赋值运算符。 为什么逻辑运算符被排除在外? 难道有一个很好的技术原因吗?

PHP中的引用赋值运算符,=&

在PHP中, =& (等号和赋值)赋值操作符是做什么的? 它是否被弃用?

Scala赋值给Unit的动机是什么,而不是赋值?

Scala赋值给Unit的动机是什么,而不是赋值? I / O编程的一个常见模式是做这样的事情: while ((bytesRead = in.read(buffer)) != -1) { … 但是在Scala中这是不可能的,因为… bytesRead = in.read(buffer) ..返回Unit,不是bytesRead的新值。 看起来像是一个有趣的事情,离开了function语言。 我想知道为什么这样做?

R中的`=`和`<-`有什么区别?

可能重复: R中的赋值运算符:“=”和“< – ” 我正在使用R 2.8.1,可以同时使用=和<-作为variables赋值操作符。 他们之间有什么区别? 我应该使用哪一个?

复制构造函数和赋值运算符

如果我重写operator=复制构造函数会自动使用新的操作符? 同样,如果我定义了一个拷贝构造函数,那么operator=自动“inheritance”拷贝构造函数的行为吗?

为什么赋值运算符要返回对象的引用?

我正在修改我的C ++,而且我正在处理操作符重载,特别是“=”(赋值)操作符。 我在网上查找,并且遇到了多个讨论它的主题。 在我自己的笔记中,我把所有的例子都取下来了 class Foo { public: int x; int y; void operator=(const Foo&); }; void Foo::operator=(const Foo &rhs) { x = rhs.x; y = rhs.y; } 在我在网上find的所有参考资料中,我注意到操作符返回了一个对源对象的引用。 为什么正确的方式返回对象的引用而不是什么都没有?

从一个函数内分配多个对象到.GlobalEnv

在这里的一个post后面有一个我想知道如何在一个函数内为全局环境中的多个对象赋值。 这是我尝试使用lapply ( assign可能比<<-更安全<<-但我从来没有真正使用它,并不熟悉它)。 #fake data set df <- data.frame( x.2=rnorm(25), y.2=rnorm(25), g=rep(factor(LETTERS[1:5]), 5) ) #split it into a list of data frames LIST <- split(df, df$g) #pre-allot 5 objects in R with class data.frame() V <- W <- X <- Y <- Z <- data.frame() #attempt to assign the data frames in the LIST […]

为什么不能使用非成员函数来重载赋值操作符?

赋值运算符可以使用成员函数进行重载,但不能使用非成员函数: class Test { int a; public: Test(int x) :a(x) {} friend Test& operator=(Test &obj1, Test &obj2); }; Test& operator=(Test &obj1, Test &obj2)//Not implemented fully. just for test. { return obj1; } 它导致这个错误: 错误C2801:'operator ='必须是非静态成员 为什么不能使用friend函数来重载赋值操作符? 编译器允许使用friend来重载其他运算符,例如+=和-= 。 支持operator=的固有问题/限制是什么?