jjzjj

Assignment

全部标签

c++ - 'if' 语句中的赋值和比较顺序

看代码:inti=5;if(i=0){printf("Gothere\n");}C标准对于将要打印的内容有何规定?或者更笼统地说,是赋值先发生还是比较先发生? 最佳答案 §6.8.4说if选择语句的语法是:if(expression)statement在本节的后面,它提到如果表达式比较不等于0,则执行statement。因此,必须先对表达式进行求值,然后才能将其与0进行比较。i=0是一个求值为0的表达式。有关进一步的引用,请参阅§6.5“表达式”与§6.5.16“赋值运算符”,请特别注意以下摘录:Anassignmentoperat

c++ - 错误 : copy assignment operator not allowed in union

当出现以下错误时,我正在编译下面的代码。我找不到原因。typedefunion{struct{constintj;}tag;}X;intmain(){return0;}error:member`::``::tagwithcopyassignmentoperatornotallowedinunion虽然这段代码使用gcc编译罚款。仅使用g++时出错。 最佳答案 为了拥有某个类类型T的union成员,T的特殊成员函数(默认构造函数、复制构造函数、复制赋值运算符、和析构函数)必须是微不足道的。也就是说,它们必须是由编译器隐式声明和定义的。

C++ 编程 : Assignment's Output is Marginally Off

好的,任务是从名为tickets.txt的文件中获取输入,并输出售出的门票总数以及总收入。文本文件中的值在两列中输入(1)售出的门票数量,以及(2)每个门票类别的价格。文本文件如下所示:25057501002800050357502518750这是我想出的代码...#include#include#includeusingnamespacestd;/*ProgramName:Ticket_Sales.cpp*Date:May2,2018*Purpose:CalculateTotalTicketSales*/intmain(){{ifstreaminFile;floatticket_co

C++ move 语义 : why copy assignment operator=(&) is called instead of move assignment operator=(&&)?

我有以下代码:#include#includeusingstd::cout;structSomeType{SomeType(){}SomeType(constSomeType&&other){cout我希望move构造函数调用move赋值运算符。下面是这个程序的输出:SomeType(SomeType&&)operator=(constSomeType&)operator=(SomeType&&)如您所见,move赋值运算符已成功调用,但在move构造函数内分配给*this时未成功调用。为什么会发生这种情况,我能以某种方式解决它吗? 最佳答案

c++ - 此类运算符的名称是什么 : '+=' , '-='

这类运算符有具体名称吗?Sum+=1;我在我的第一个C++类(class)中学习了它并经常使用它,但我一直不知道是否有缩写的名称。 最佳答案 Isthereaspecificnameforthistypeofshort?是的,它叫做复合赋值1运算符。根据Source3具体的叫加法作业减法作业等...1)Source1,Source2,Source3 关于c++-此类运算符的名称是什么:'+=','-=',我们在StackOverflow上找到一个类似的问题:

c++ - 错误 :incompatible types in assignment of 'const char[5]' to 'char[10]'

我已经将c定义为charc[][10]在函数定义中并像c[i]="gray";一样使用它怎么了?我在网上搜索,它显示相同的语法。谢谢。 最佳答案 您不能对数组使用赋值(=)。如果将c更改为指针数组,这可能会起作用,具体取决于您需要使用它做什么。constchar*c[20];c[i]="gray";或者如果声明的类型必须是数组的数组,您可以使用strncpy:charc[20][10];strncpy(c[i],"gray",sizeof(c[i])); 关于c++-错误:incompa

c++ - 使用哪个 : move assignment operator vs copy assignment operator

我似乎不明白为什么要使用移动赋值运算符:CLASSA&operator=(CLASSA&&other);//moveassignmentoperator结束了,复制赋值运算符:CLASSA&operator=(CLASSAother);//copyassignmentoperator移动赋值运算符仅采用r值引用,例如CLASSAa1,a2,a3;a1=a2+a3;在复制赋值运算符中,other可以是使用复制构造函数或移动构造函数的构造函数(如果other是用右值初始化的,它可以是移动构造的——如果move-constructor定义了——)。如果它是copy-constructed,我

c++ - C/C++ 中的链式赋值是未定义的行为吗?

忽略变量的类型,像a=b=c这样的表达式是否在C和C++中都有定义的行为?如果是这样,谁能给我官方证据,比如标准中的引述,好吗?附言我搜索了链接赋值,但我得到的一切都是关联性,但我没有在C99标准中找到任何关于它的文本。也许我做错了?希望有人能帮助我。 最佳答案 来自C++标准5.17Assignmentandcompoundassignmentoperators[expr.ass]1Theassignmentoperator(=)andthecompoundassignmentoperatorsallgroupright-to-l

c++ - 开关盒 : declaration-with-initialization & declaration-and-then-assignment

在switch-case语句中,declaration-with-initialization是无效的,但允许declaration-and-then-assignment。如以下代码片段所示。从编译器端看,这两种类型的初始化有什么区别?以及为什么第一种初始化无效而第二种初始化有效。switch(val){case0:intnewVal=42;//Invalidbreak;case1:intnewVal2;//ValidnewVal2=42;break;case2:break;} 最佳答案 实际上,规则是您不能跳入经过具有初始化的声

三种不同的控制 CRM UI Assignment Block 显示与否的技术

WebClientUI作为一种极佳的企业级应用UI开发技术,给开发人员提供了强大而灵活选择来实现用户的各种需求。在实际的CRM实施项目中,一个常见的要求是,概览页面中的某个分配块只能在某种情况下显示,例如被ABAPbusinessswitch开启与否的控制。本文以下是通过ABAP代码控制一个赋值块的可见性的三种方法。方法一:动态视图分离这种做法的思路是,redefine概述页面的控制器类的方法DETACH_STATIC_OVW_VIEWS.所有放入内部表rt_viewid中的视图将在运行时被UI框架隐藏。下面的代码是一个示意,开发人员可以评估第3行中的某些条件,如果满足条件,则赋值块Searc