草庐IT

Operators

全部标签

c++ - "=!"运算符是做什么的?

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭2年前。Improvethisquestion我不小心输入了=!而不是!=导致了系统中的一个巨大错误,该错误有一段时间未被发现;从那以后我就修复了它,但我很好奇=!的作用。我有这样的东西voidfoo(intparam){inta=0;...if(a=!param){//nevergothereevenwhen`a`wasnotequalto`

c++ - '%lt' 在 C++ 中是什么意思? (不是模数,我知道那是做什么的)

我曾经看到过这行代码:std::cout%lt;%lt;"Helloworld!"%lt;%lt;std::endl;我想知道%lt;%lt;是什么意思。 最佳答案 你一定在网上看到过。有人上传了这一行:std::cout为了输出到html,它被翻译成这样:std::cout<<"Helloworld!"<<std::endl;因为,当然,<是的html实体.最后,某个地方决定将&符号更改为百分号,可能作为url编码方案的一部分。 关于c++-'%lt'在C

c++ - 使用运算符将​​字符串流传递给 istream >>

我正在尝试将字符串流传递到一个对象(类)中,该对象(类)具有已声明和定义的重载提取运算符>>>。例如,object1中重载的提取运算符的声明是friendistream&operator>>(istream&in,Object1&input);在object2中,我的声明几乎一样friendistream&operator>>(istream&in,Object2&input);在object1提取函数期间,func.获取一行,将其转换为字符串流并尝试使用Object2的提取(>>)运算符。istream&operator>>(istream&in,Object1&input){Obj

c++ - 前缀和后缀运算符 C++

classcompl{floatre,im;public:compl(floatr,floati){re=r;im=i;}compl&operator++(){++re;return*this;}//(1)comploperator++(intk){complz=*this;re++;im+=k;returnz;}//(2)friendcompl&operator--(compl&z){--z.re;returnz;}friendcomploperator--(compl&z,intk){complx=z;z.re--;z.im-=k;returnx;}};(1)为什么我们必须通过引用

c++ - 后缀(前缀)增量、左值和右值(在 C 和 C++ 中)

我刚刚了解到以下事实:Theresultofaprefixincrement(++var_name)isanR-valueinC(atleast,IamsurethatitisnotaL-valueinC),butitisanL-valueinC++.Theresultofapostfixincrement(var_name++)isanR-valueinC(atleast,IamsurethatitisnotaL-valueinC).ThisisalsotrueinC++(Itsaystheresultisaprvalue).我在VS2010(.cpp和.c)和Ubuntu(gcc和

c++ - 如何查找错误的中缀表达式?

我必须将中缀表达式转换为后缀。我的InfixtoPostfix代码运行正常,没有任何错误。但我还必须找到错误的中缀表达式。如何解决这个问题呢?这是我的代码:(我使用了我的自定义堆栈文件)#include#include#include"stacktype.cpp"usingnamespacestd;stringinfixToPostFix(stringinfix);inthigherPrecedenceValidate(charop1,charop2);intgetPrecedence(charop);intevaluatePostFix(stringpostfix);intmain(

C++ - 我应该使 `operator+` 为常量吗?它会返回引用吗?

当一个类重载operator+时,是否应该声明为const,因为它不对对象做任何赋值?另外,我知道operator=和operator+=返回一个引用,因为进行了赋值。但是,operator+呢?当我实现它时,我应该复制当前对象,将给定对象添加到该对象,然后返回该值吗?这是我的:classPoint{public:intx,inty;Point&operator+=(constPoint&other){X+=other.x;Y+=other.y;return*this;}//Theaboveseemsprettystraightforwardtome,butwhataboutthis?

c++ - "<?="运算符的意义

这个问题在这里已经有了答案:What's"(2个答案)关闭8年前。我在Topcoder上查看一个问题的解决方案,遇到了这个问题:http://community.topcoder.com/stat?c=problem_solution&rm=249419&rd=9996&pm=6621&cr=309453目前我没有兴趣知道算法是如何工作的,但是“代码在这里:usingnamespacestd;#include#include#include#include#include#include#include#include#include#include#include#include#i

c++ - 这个结构继承的类型是什么?

所以thisexample来自:http://en.cppreference.com/w/cpp/utility/variant/visit声明特殊类型:templatestructoverloaded:Ts...{usingTs::operator()...;};templateoverloaded(Ts...)->overloaded;这里构造为r值:std::visit(overloaded{[](autoarg){std::cout我正在尝试弄清楚这是如何工作的。overloaded从这里继承的类型是什么?它看起来像一个lambda数组,但我不明白它怎么会有一个operator

c++ - operator()() 定义了什么?

如果这个问题被举报,我很抱歉,但我似乎无法轻松地在线找到解决方案。如果我覆盖operator()()这定义了什么行为? 最佳答案 operator()是函数调用操作符,即可以使用对应类型的对象作为函数对象。第二组括号包含空的参数列表(和往常一样)。例如:structfoo{intoperator()(){return17;};};intmain(){foof;returnf();//useobjectlikeafunction}上面的例子只是展示了运算符是如何声明和调用的。实际使用可能会访问运算符中的成员变量。函数对象在标准C++库