Newsgroup: it.comp.lang.c++
Titolo: Funzioni

Come faccio a fare in modo di poter chiamare una funzione all'esterno del
file in cui sto scrivendo la mia main?
Voglio dire, io scrivo per esempio un file .cpp che chiamo main.cpp e ci
scrivo dentro il codice necessario per chiedere all'utente di inserire due
numeri ed anche la chiamata alla funzione sum() che ho scritto in un altro
file, diciamo sum.cpp    Come devo fare?
Scusate sono un principiante.
Grazie

 ha scritto nel messaggio
news:RMyZa.63901$cl3.2...@news2.tin.it...

scrivi un header per sum.cpp e lo chiamerai sum.hpp (se e' scritto in cpp,
se e' solo c usi .h) li dentro ti creerai un tuo namespace o lo lascerai nel
globale (scelte tue), e ci scriverai magari una cosa del genere (non
conoscendo la tua funzione tiro ad indoovinare, e la scrivo in c):
int sum(int,int);
ora nel file main scrivi :
#include "sum.h"
ora potrai compilare il fail main.cpp e trasformarlo in un .o, fare lo
stesso per il file sum.cpp, dopo di che mandi i due .o in pasto al linker
che li linkera' assieme, ottenendo cosi' l'eseguibile completo.
se usi gcc i passaggi sono:
g++ -c main.cpp -o main.o
g++ -c sum.cpp -o sum.o
g++ main.o sum.o -o somma.exe
puoi abbreviare il tutto scrivendo:
g++ main.cpp sum.cpp -o somma.exe
ho scritto i passaggi sopra per farti vedere i vari passaggi di compilazione
cosi' che un domani sai come scriverti magari dei makefile o file batch di
compilazione in cui andrai a ricompilare solo i sorgenti modificati e non
tutto un progetto ...
ciao

 ha scritto nel messaggio
news:bh6h66$719$1...@news.ngi.it...

Ti ringrazio della risposta ma non ho capito bene...
Dunque io uso Quincy2002 come ambiente di lavoro e il Mingw 2.0.0 come
compilatore (semplicemente per il fatto che poi all'esame dovrň lavorare con
quelli).
I prof mi hanno spiegato che quello che ci fanno usare č lo standard ma dai
pochi post che ho letto mi sembra che non ne sappiano tanto (e qualche
dubbio lo avevo anch'io prima, va bhe)
Ora io ho scritto questo codice:
#include <iostream.h>
int sum(int x, int y)
{
int somma=0;
somma= x+y;
return somma;
}
e l'ho salvato come sum.h (non come .hpp benchč uso il c++ e non il c, ma
nel salvarlo il quincy mi suggeriva .h e non .hpp e poi negli include devo
sempre mettere .h e quindi mi sembrava la scelta piů logica)
poi in un altro file ho scritto il main
#include <iostream.h>
#include <sum.h>
int main()
{
int a, b;
cout<<"inserisci due interi"<<endl;
cin>>a>>b;
cout<<"la somma di <<a<<" e "<<b<<"risulta "<<sum(a,b);
}
ma non compila perchč non riconosce sum.h che ho incluso all'inizio (io l'ho
salvato nella stessa cartella nella quale ho salvato il main).
Spero che tu possa aiutarmi. Grazie e scusa dell'incompetenza.

 Spero che tu possa aiutarmi. Grazie e scusa dell'incompetenza.
prova a fare come ti ho detto e fammi sapere ...
ciao


ci sono riuscito! Grazie!
Nella file della funzione sum non ho messo il .h ma tanto non ho dovuto
neanche compilarla per farla funzionare (ma č una cosa normale?)
Grazie ancora!

 cout....
	Perche' se includi gli header senza il .h, il loro "contenuto" appartiene
ad un namespace chiamato std. Percio' dovrai usare std::cin e std::cout,
oppure metti sotto l'include
using namespace std;
oppure
using std::cin;
using std::cout;
per evitare di riscrivere ogni volta std.
_dave_

 neanche compilarla per farla funzionare (ma è una cosa normale?)
spiega non ho capito cosa volevi dire ... ???
ah prova a levare i .h e a fare le cose che ti ha detto _dave_ e vedi se
cosi' finalmente usi gli header giusti ... se neanche cosi' funziona hai un
compilatore troppo vecchio che e' prestandard ...
ciao