可能性の重複:もちろん
Why is it an error to use an empty set of brackets to call a constructor with no arguments?かっこ付きかどうかでクラスをインスタンス化しますか?
#include <iostream>
using namespace std;
class CTest
{
int x;
public:
CTest()
{
x = 3;
cout << "A";
}
};
int main() {
CTest t1;
CTest t2();
return 0;
}
CTEST T1版画 "A"。
しかし、t2()では何も起こらないようですが、コードはうまく動作します。
私たちは引数なしでそれらのカッコを使用しますか?それとも、なぜこのように使うことができますか?
C++の[最も厄介な構文解析](http://en.wikipedia.org/wiki/Most_vexing_parse)です。 –
@PeterWood:個人的に、私はそれに反対します。歴史的に、「最も厄介な解析」は、一時的に初期化された値である初期値であいまいさが発生する場合のみを指していた。 'CTest t2(CTest());'この単純な場合よりむしろ。 –
@CharlesBailey 'は最も厄介な構文解析に関連していました。ありがとう。 –