Ich bin neu in C++ und probiere einfach Sachen aus. Ich steckte mit dem folgenden Code:Verletzung der Typsicherheit in C++ bei Funktionsdeklaration anderer Art?
#include<iostream>
void t(){
std::cout << "func t()" << std::endl;
}
int main(int argc, char **argv) {
int t(); //declaration of function
std::cout << t() << std::endl;
}
Der Ausgang ist "func t() \ n6295712". Mein Anliegen ist die zufällige (?) Nummer, die mit t() gedruckt wird.
Meine Frage ist: Warum ist es erlaubt, eine Funktion eines anderen Rückgabetyps (hier: int statt void) ohne Fehler zu deklarieren? Ist das keine Verletzung der Typsicherheit, weil ich nie eine Funktion mit dem Rückgabetyp "int" definiert habe?
Gebrauchte Compiler: gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.1) 4.8.4
Meine Ausgabe hier ist 'func t() \ n6295680', die sich von ** nur **' 6295712' unterscheidet. Druckt Ihr Programm wirklich nur diese Nummer? –
Sie haben Recht, ich habe es bearbeitet - ich war nur mit der Nummer beschäftigt und vergaß die andere Ausgabe. Danke –
kann bestätigen wtf http://coliru.stacked-crooked.com/a/f9b957636b731736 –