相关疑难解决方法(0)

逗号运算符如何工作

逗号运算符如何在C++中工作?

例如,如果我这样做:

a = b, c;  
Run Code Online (Sandbox Code Playgroud)

最终是否等于b或c?

(是的,我知道这很容易测试 - 只是在这里记录,以便有人快速找到答案.)

更新: 此问题在使用逗号运算符时暴露了细微差别.只是记录下来:

a = b, c;    // a is set to the value of b!

a = (b, c);  // a is set to the value of c!
Run Code Online (Sandbox Code Playgroud)

这个问题实际上是受到代码中的拼写错误的启发.打算做什么

a = b;
c = d;
Run Code Online (Sandbox Code Playgroud)

转换成

a = b,    //  <-  Note comma typo!
c = d;
Run Code Online (Sandbox Code Playgroud)

c++ comma-operator

165
推荐指数
6
解决办法
5万
查看次数

何时超载逗号运算符?

我经常看到关于在C++中重载逗号运算符的问题(主要与重载本身无关,但是像序列点的概念一样),这让我想知道:

你什么时候应该重写逗号?它的实际用途有哪些例子?

我只是想不出任何我已经看到或需要的东西

foo, bar;
Run Code Online (Sandbox Code Playgroud)

在现实世界的代码中,所以我很好奇何时(如果有的话)实际使用它.

c++ function operator-overloading

64
推荐指数
10
解决办法
2万
查看次数

逗号运算符的正确用法是什么?

我看到了这段代码:

if (cond) {
    perror("an error occurred"), exit(1);
}
Run Code Online (Sandbox Code Playgroud)

为什么要这么做?为什么不呢:

if (cond) {
    perror("an error occurred");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

c c++ coding-style comma-operator

37
推荐指数
5
解决办法
4064
查看次数