No, questo non è corretto.
Main è una funzione speciale e richiede rigidi requisiti (anche più severi di una funzione normale), ma si crea anche una certa confusione tra cosa è una funzione e cosa è un puntatore a una funzione.
Il problema logica è che c'è una differenza tra una funzione e una variabile in possesso di un puntatore a una funzione (quello che si vuole principale di essere). Una funzione ha un indirizzo fisso in memoria, quindi per chiamare una funzione viene chiamato semplicemente l'indirizzo. Un puntatore a una funzione punti in un indirizzo in memoria, quindi per chiamare la funzione è necessario prima leggere ciò che il puntatore punta e quindi chiamare quell'indirizzo.
Un puntatore a funzione ha un diverso livello di riferimento indiretto da una funzione.
La sintassi è lo stesso ... cioè se x
è un puntatore a una funzione si può scrivere x(42)
, ma ancora il codice macchina generato è differente se x
è invece una funzione (nel caso di un puntatore un valore deve essere cercato e l'indirizzo di chiamata è determinato in fase di esecuzione, con una funzione l'indirizzo è fissato - fino al trasferimento - ed è determinato al momento del collegamento).
Mi piace il modo in cui stai cercando di utilizzare le ultime funzionalità avanzate di C++ 11, ma continuo a utilizzare 'cstdio' e' printf' :-) – paxdiablo
@paxdiablo: printf rocks !!! C++ fallito ai flussi I/O :) –
Secondo Stroustroup ... se C ti permette di sparare ai piedi, C++ può far saltare tutte le gambe! Questo è quello che chiamo ... masochismo! :-)) –