Luc*_*ore 7 c++ language-lawyer
我减少了这个:
struct A
{
int * x;
A() : x( x = new int() )
{
}
};
Run Code Online (Sandbox Code Playgroud)
以下内容:
int m = m = 3;
//or
struct X;
//...
X x = x = X();
Run Code Online (Sandbox Code Playgroud)
对我来说似乎合法.我不明白你为什么要这样做,但它合法吗?有没有你想要这样做的int情况(不是这样,我意识到这完全没用)?
Jam*_*nze 10
它在语法上是合法的,但会在运行时导致未定义的行为.在如下的声明中:
X x = x = X();
Run Code Online (Sandbox Code Playgroud)
第二个=是赋值,它分配给一个未初始化的变量.(第一个=只是说下面应该用于复制初始化的语法;它不是赋值.)
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |