1

尽管我认为这不是一个好习惯,但我使用的编译器(GNU 和 clang)似乎允许以下内容

      int f() {return 11;}

      class A {

          int a = f();
          public:
          int tell_me() {return a;}
              };

即通过调用完全无关的函数来进行大括号或等号初始化。

这是正确的并且是标准允许的吗?执行 最终引入的附带影响又如何f()呢?

4

1 回答 1

1

这是正确的并且是标准允许的吗?

是的。

那么 f() 的执行最终引入的附带影响呢?

执行函数时会发生副作用,这会在A构造 an 时发生。就像使用初始化列表时一样。

于 2015-04-02T08:50:38.150 回答