在条件中声明两个变量?

Xol*_*lve 0 c++ conditional declaration

我可以在C++中的条件语句中声明两个变量.编译器给出了错误,但我认为我应该得到一个意见:

int main()
{
    double d1 = 0;
    if((double d2 = d1) || (double d3 = 10))
        cout << "wow" << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*itb 5

您只能为一个变量执行此操作

if(double d2 = d1)
    cout << "wow" << endl;
else 
if(double d3 = 10)
    cout << "wow" << endl;
Run Code Online (Sandbox Code Playgroud)

但我会在条件之外宣布它们.如果您害怕范围,您可以随时限制它:

{
  double d2 = d1;
  double d3 = 10;
  if(d2 || d3)
    cout << "wow" << endl;
}
Run Code Online (Sandbox Code Playgroud)

当然,即使d2评估为true ,这也会评估第二个初始化程序.但我认为这并不重要.