单行class声明和实例化

Single line class declaration and instantiation

我偶然发现了使用以下语法的代码。

int main(){    
  class foo{
    public:
      int x;
      foo(int y){x=y;}
  }
  * bar = new foo(1);    
}

与更常见的

相比,有没有purpose/consequence使用它
int main(){    
  class foo{
    public:
      int x;
      foo(int y){x=y;}
  };

  foo * bar = new foo(1);    
}

这可能是一个见仁见智的问题,但我认为第一种方法是糟糕的编码实践。

  1. 它不会影响 运行 时间行为。
  2. 它使代码更难阅读。