|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Apr 2015
Messaggi: 10
|
C++ Funzioni e Dichiarazione
Salve ho iniziato da poco a fare le Funzioni in C++ per poi passare agli Array, mi sono subito fermato alla dichiarazione e definizione di una funzione (di tipo int)
Codice:
#include <iostream>
using namespace std;
int moltiplica (int x, int y);
int moltiplica (int x, int y)
{
int ris;
ris=x*y;
return ris;
}
main()
{
int a=5;
int b=6;
int risultato;
risultato=moltiplica (a,b);
cout << "Il risultato e':" << risultato << endl;
return 0;
}
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Cmq la dichiarazione di una funziona va fatta in un punto del file precedente (più in alto) a dove la usi, per far sapere al compilatore che c'è. La definizione può anche stare altrove (dopo il main nel tuo caso, o in un altro file) |
|
|
|
|
|
|
#3 | |
|
Junior Member
Iscritto dal: Apr 2015
Messaggi: 10
|
Quote:
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Nel tuo esempio la dichiarazione è: int moltiplica (int x, int y); La definizione è: int moltiplica (int x, int y) { int ris; ris=x*y; return ris; } cioè il corpo della funzione. Se non la definisci, nel main tenti di usare una funzione che... si sa che forma ha (cioè che parametri accetta e cosa restituisce) ma non si sa cosa faccia. La definizione, dato che richiede di ripetere int moltiplica (int x, int y) fa anche da dichiarazione, per questo se nel tuo codice togli la dichiarazione il programma funziona lo stesso. Quindi, questi casi compilano correttamente: // In main uso una funzione dichiarata prima e definita dopo Codice:
int foo(int a, int b);
int main(){ int c = foo(1, 2); return 0; }
int foo(int a, int b){ return a + b; }
Codice:
int foo(int a, int b){ return a + b; }
int main(){ int c = foo(1, 2); return 0; }
// In main() sto usando una funzione che non so che esista (perchè è dichiarata dopo) Codice:
int main(){ int c = foo(1, 2); return 0; }
int foo(int a, int b){ return a + b; }
Codice:
int foo(int a, int b);
int main(){ int c = foo(1, 2); return 0; }
|
|
|
|
|
|
|
#5 | |
|
Junior Member
Iscritto dal: Apr 2015
Messaggi: 10
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2014
Messaggi: 3826
|
Comunque, di solito, le dichiarazioni delle funzioni, e le strutture dati, vengono inserite in un header file, che poi viene incluso nei sorgenti in cui li si utilizza.
PS: onestamente, ti consiglio "Thinking in C++", di Eckel |
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Apr 2015
Messaggi: 10
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2007
Messaggi: 759
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Apr 2015
Messaggi: 10
|
Grazie
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:57.




















