声明没有变量名c ++的实例

ser*_*iol -3 c++ constructor anonymous variable-declaration

由静态数据字段引起的消费者文件中询问C++ Error链接之后,我为StateConservator的一个实例尝试了两种不同的声明:

StateConservator cs(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

StateConservator(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

第一个做了我想要的,它只在范围结束后才传递析构函数.第二个在声明本身的行中传递析构函数.

编译器是否正常运行?如果是正确的行为,在该行中声明匿名变量的方法是什么?

D.S*_*ley 6

您不能在C++中拥有"未命名"对象.在第二种情况下,对象即时创建和销毁,因为它与名称无关.与名称(例如,变量)的关联给出了控制其寿命的对象范围.通过不命名对象,它的生命周期与语句绑定.如果给它一个名称,那么它将被绑定到声明名称的范围.