assignment-operator相关内容

在c ++中私有副本构造函数的用途是什么

为什么人们定义了一个私有拷贝构造函数? 何时使拷贝构造函数和赋值运算符成为一个好的设计? 如果类中没有成员作为唯一对象(例如文件名)的指针或句柄,那么wat其他情况下有私人复制构造函数是个好主意吗? 同样的问题适用于赋值运算符。考虑到大多数C ++围绕着对象的复制和通过引用传递,有没有任何好的设计涉及到私有副本构造函数? 解决方案 某些对象表示不能或不应该复制的特定实体。 ..
发布时间:2016-10-13 12:09:23 C/C++开发

C ++ copy-construct构造和赋值问题

这是“C ++ Gotchas”一书第56项的摘录: 这是一个很简单的 初始化一个Y对象,用 三种不同的方式写,如同 它们是等价的。 Y a(1066); Y b = Y(1066); Y c = 1066; 事实上,这三个 初始化可能会导致 在同一目标代码中生成 ,但它们不是等价的。 a的初始化称为 直接初始化,它正确的是 。 初始化通 ..
发布时间:2016-10-13 10:43:44 C/C++开发

在C ++中重载赋值运算符

根据我的理解,当重载operator =时,返回值应该是非常量引用。 A&A :: operator =(const A&) { //检查自我分配,执行分配 return * this; } 这是非常量允许非const成员函数被调用例如: (a = b).f 但是为什么要返回一个引用呢?如果返回值没有声明为引用,那么在什么情况 ..
发布时间:2016-10-13 10:23:53 C/C++开发

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

如果我覆盖operator =将复制构造函数自动使用新的运算符?类似地,如果我定义一个复制构造函数,将操作符=从复制构造函数自动“继承”行为。 解决方案他们是不同的运营商。 复制构造函数用于创建一个新对象。它将现有对象复制到新构造的对象。复制构造函数用于从旧的 实例初始化新实例。当将变量按值传递给函数 或作为函数中的返回值时,不一定会调用它。 赋值运算符用于处理已经存在的对象 ..

什么是复制和交换惯用语?

这个成语是什么,什么时候使用?它解决了哪些问题?当使用C ++ 11时,惯用语是否会改变? 虽然在很多地方都提到过,但我们没有任何奇怪的“什么是”问题和答案,所以这里是。以下是之前提到的地方的部分列表: 复制构造函数和= C ++中的运算符过载:是可能的常见函数吗? 什么是复制elision,以及如何优化复制和交换惯用语 C ++:动态分配对象数组 解决方案 概述 复 ..

为什么没有|| =或放大器;&安培; =运营商?

我们有相当的赋值运算符的所有逻辑运算符,移位运算,加法运算符和所有乘法运算。 为什么逻辑运算符被甩了呢? 是否有一个良好的技术原因,这是很难? 解决方案 为什么逻辑运算符被甩了呢?是否有一个良好的技术原因,这是很难? 他们没有。你可以做&安培; = 或 | = 或 ^ = 如果你想。 B1布尔= FALSE; 布尔B2 = TRUE; B1 | = B2; //意味着B1 ..

如何一个等于前pression工作printf的占位符?

我有以下的code片断: 的main() { INT K = 35; 的printf(“\\ n%D%D”,K = = 35,K = 50,K> 40); } 产生以下输出 0 50 0 我不知道我理解的的printf的的第一个值怎么来 0 。当 k值与 35 ,它应该理想地返回(从而打印)1,但如何比较它打印零?另外两个值是已交出 50 和 0 都是正确的,因为在第二个值,值k设 ..
发布时间:2016-08-22 15:52:15 C/C++

C:传递(双)分配

我在C中使用这样的结构: 列表 - >头=列表 - >尾= NULL; 现在我考虑这是否真正意味着什么,我想。 时这意味着什么? 列表 - >头= NULL;列表 - >尾= NULL; 或 列表 - >头=列表 - >尾;列表 - >尾= NULL; THX澄清 解决方案 这些都不是正确的。 由于简单的赋值 = 操作符是 ..
发布时间:2016-08-19 14:14:30 C/C++

为什么我们允许改变的&QUOT值; const的"限定的变量?为什么指针允许这一点,但不是分配?

考虑下面的2个节目 PROG1 和 PROG2 。在这里,如果我试图改变的值常量合格的变量 I 使用指针 PTR ,我得到的警告(不出错)“初始化丢弃了指针目标类型的限定|“,但程序仍然运行并显示新value.But如果我试图改变 i的值在使用赋值语句的第二个方案,我得到的错误(不报警)的只读变量“i”的分配| 以下是这premise引起的混乱: 1)我们为什么允许改变只读常量限定变量在任何情 ..
发布时间:2016-08-19 00:28:35 C/C++

为A + = B比在C = A + B更有效?

我知道在一些语言如下: A + = B 的效率比: A = A + B ,因为它消除了对创建临时变量的需要。这是在C的情况下?它是更有效地使用+ =(因此也 - = * = 等) 解决方案 所以这里有一个明确的答案...... $猫junk1.c #包括LT&;&stdio.h中GT;诠释的main() { 长,S = 0; 用于:(a = 0;一个与所述 ..
发布时间:2016-08-18 13:12:58 C/C++

推动::可选不是让我重新分配常量的值类型

在我看来,应该有四个变量的boost ::可选的 可选<富> =>持有可变Foo和可以初始化后重新分配 可选<富常量>常量 =>持有一个const Foo和初始化后不能重新分配 可选<富>常量 =>(应该?)持有可变富,但初始化后不能重新分配 可选<富常量> =>(?应该)举办一个const Foo和可以初始化后重新分配 ..

赋值运算符的布尔和字符串重载(C ++)

我定义在赋值运算符的多个重载如下: foo.h中 类Foo { 私人的: 布尔my_bool; INT my_int; 标准::字符串my_string; 上市: 美孚&安培;运算符=(布尔值); 美孚&安培;运算符=(int值); 美孚&安培;运算符=(常量标准::字符串&安培;值); }; Foo.cpp中 //赋值操作符。 美孚&安培 ..