Sono nuovo del C++ e provo solo cose. Ho bloccato con il seguente codice:Violazione della sicurezza del tipo in C++ con dichiarazione di funzione di altro tipo?
#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;
}
L'uscita è "func t() \ n6295712". La mia preoccupazione è il numero casuale (?) Stampato da t().
La mia domanda è: perché è consentito dichiarare una funzione di un altro tipo di ritorno (qui: int al posto del vuoto) senza errori? Non si tratta di una violazione della sicurezza di tipo perché non ho mai definito una funzione con un tipo di ritorno "int"?
compilatore usate: gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.1) 4.8.4
Il mio output qui è 'func t() \ n6295680', che è diverso da ** solo **' 6295712'. Il tuo programma stampa davvero solo quel numero? –
Hai ragione, l'ho modificato: ero solo preoccupato del numero e ho dimenticato l'altro output. Grazie –
puoi confermare wtf http://coliru.stacked-crooked.com/a/f9b957636b731736 –