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(); 

} 

In der main() Funktion, wenn ich die Variable a in der obigen Art und Weise bin erklärt, funktioniert der Code in Ordnung, aber wenn wir die Variable A a() Compiler gibt Fehler erklären. Wieso ist es so? Ich denke, es gibt kein Problem in Bezug auf die Anpassung des Argumenttyps. Kann jemand helfen?Constructor und Variablendeklaration in Cpp

Antwort

1

Weil A a() keine Variablendeklaration ist, sondern eine Prototyp-Funktionserklärung.

0

C++ 11 und höher beheben dieses Problem mit universellen Initialisierern. Sie deklarieren eine Funktion, die ein A zurückgibt. Wenn Sie stattdessen {} verwenden, wird es funktionieren:

A a{};