Newsgroup: it.comp.lang.c++
Titolo: AIUTO AIUTO...STO DIVENTANDO PAZZO!!!

Qualcuno puo' risolvermi sto problema???:
questo é il sorgente:
 
#include<iostream.h>
#include<conio.h>
#include<dos.h>
void Giocata(char);
char Videata();
main()
 {
  char SCELTA;
  SCELTA=VIDEATA();
  GIOCATA(SCELTA);
 }
Adesso senza spiegarvi cosa fa il programma (é una
prova didattica) potete dirmi xké il linker mi da
l'errore :
"undefinited symbol in Videata()"
"undefinited symbol in Giocata(char)"
Io uso un Turbo C++ Ver1.01 (mooolto vecchia) ma non
dovrebbe comportarsi a dovere? considerando che se
metto solo uno dei prototipi funziona come si deve???
Vi prego...datemi vostre notizie all' E-MAIL
jhonn...@yahoo.it
 VI PREGO! sto imparando e non mi
va di perdere il cranio su una cosa che probabilmente
dipende dal compilatore e non da me!
______________________________________________________________________
Do You Yahoo!?
Il tuo indirizzo gratis e per sempre @
yahoo.it
 su 
http://mail.yahoo.it
--
Posted from 
web5104.mail.yahoo.com
 [216.115.106.74] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


| void Giocata(char);
| char Videata();
|
| main()
|  {
|   char SCELTA;
|   SCELTA=VIDEATA();
|   GIOCATA(SCELTA);
|  }
Mai sentito parlare di case sensitive?
Giocata a GIOCATA sono differenti, come pure GiOcaTa, GIocaTa, gioCata,
etc..

dipende dal compilatore e non da me!
Mettersi a imparare il C++ utilizzando un compilatore
cosi' vecchio vuol dire perdere semplicemente tempo.
Da allora sono stati introdotti numerosi cambiamenti;
senza contare che il C++ 1.0 era anche il primo che
avevo iniziato a guardare e aveva numerosi bug
concettuali nella compilazione (al punto che decisi
di lasciare perdere il C++).
[
Ricordo una chicca... in alcuni casi chiamava il
costruttore di copia passando come origine della
l'istanza stessa (che era gia' stata costruita
correttamente in precedenza).
]
Riguardo al problema specifico credo che la risposta
sia nella deduzione automatica del tipo delle funzioni
e degli argomenti al loro primo uso.
In "C" se non dichiari una funzione ma la chiami
il compilatore immagina che si tratti di una funzione
che ritorna un intero e che riceve esattamente
i parametri che hai passato (senza conversioni).
In C++ questo non e' consentito: ogni funzione
chiamata *deve* avere un prototype che descriva
esattamente il valore di ritorno e i parametri
richiesti.
Nel Turbo C++ 1.0 mi dici che il compilatore accetta
il codice con uno solo dei prototype... questo mi
fa pensare che il problema e' forse nell'errata
deduzione su parametri/valori di ritorno.
Visto che in C++ esiste l'overloading invece di
ottenere un crash (cosa tipica del C nel caso che
manchino prototype) ottieni un errore di link.
Il tuo problema e' pero' oggi solamente una perdita
di tempo... il codice senza prototype non e' C++
legale e basta. Usare un compilatore C++ scritto
10 anni fa e' da masochisti.
Fatti un favore e procurati un compilatore C++
che almeno faccia finta di stare al passo. Nella
FAQ ci sono diversi puntatori a compilatori
gratuiti reperibili in internet.
Andrea
PS: Chiedere risposte via email non e' educato
    (non che costi fatica... e' semplicemente
    una questione di stile):
    Perche' qualcuno dovrebbe perdere tempo a
    leggere i tuoi problemi (che non lo riguardano)
    ed aiutarti se tu non hai nemmeno il tempo
    di leggere le news ?
    Qualche anno fa chiedere una copia via email
    lo ritenevo accettabile perche' molti news
    server erano carenti e si perdeveno moltissimi
    messaggi (in particolare news server "nostrani");
    oggi con 
www.deja.com
 non ci sono pero' piu'
    scuse per non leggere il newsgroup.
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff