Sind keine Klammern in einem Konstruktor ohne Argumente ein Sprachstandard?
Ich kompilierte ein C ++ - Programm in Cygwin mit g ++ und hatte eine Klasse, deren Konstruktor keine Argumente hatte. Ich hatte die Zeilen:
MyClass myObj();
myObj.function1();
Und als ich versuchte, es zu kompilieren, bekam ich die Nachricht:
error: request for member 'function1' in 'myObj', which is of non-class type 'MyClass ()()'
Nach ein wenig Recherche stellte ich fest, dass das Problem darin bestand, die erste Zeile in zu ändern
MyClass myObj;
Ich könnte schwören, dass ich zuvor leere Konstruktordeklarationen mit Klammern in C ++ durchgeführt habe. Ist dies wahrscheinlich eine Einschränkung des verwendeten Compilers oder besagt der Sprachstandard wirklich, dass für einen Konstruktor ohne Argumente keine Klammern verwendet werden?