2016-05-02 7 views
0
#include<bits/stdc++.h> 
using namespace std; 

class A{ 
    int x; 

public: 
    A(){ 
     x=10; 
    } 

    void show(){ 
     cout<<x<<endl; 
    } 
}; 

main(){ 

    A a; 
    a.show(); 

} 

の変数の宣言は、私は上記のように変数aを宣言していたときに、コードが正常に動作しますが、我々は、変数A a()コンパイラを宣言した場合にエラーが発生します。それはなぜそうですか?私は、引数型のマッチングに関する問題はないと思います。誰も助けることができますか?コンストラクタと<code>main()</code>機能でCPP

答えて

1

A a()は変数宣言ではなく、関数プロトタイプ宣言であるためです。

0

C++ 11以上では、ユニバーサルイニシャライザでこの問題を修正しています。 {}を使用すると、代わりにAを返す関数が宣言されます。

A a{}; 
関連する問題