【发布时间】:2021-05-29 23:17:31
【问题描述】:
在 SO 上有很多类似标题的帖子,但它们似乎是由各种语法错误触发的,我还没有看到一致的模式..
using namespace std;
class A
{
public:
A(int a_) : a(a_) {}
int a;
};
int main()
{
A x{3};
A y{0};
if ((y=x).a)
cout << y.a << endl;
int i = 1;
if (int j = i)
cout << j << endl;
if ((A z = x).a) // error: expected primary-expression before ‘z’
cout << z.a << endl;
(int m = 1); // error: expected primary-expression before ‘int’
}
假设A z = x 是一个赋值表达式,它应该与z 具有相同的值,我错了吗?
【问题讨论】:
-
测试了更多,似乎问题不在于
if关键字,而是我无法将声明包含在括号内。
标签: c++ syntax compiler-errors