PDA

View Full Version : errore in visual c++



ihc'naib
14th December 2004, 17:29
sto cercando di approcciare alcune cose che devo programmare per la tesi.. devo intanto imparare il funzionamento di alcune cose di cui ho i sorgenti. Ho incluso i sorgenti a modino dentro una workspace e poi project di visual studio 6.0.. eppure mi da' un errore assurdo: C2061, sintax error: identifier, quando il sorgente vorrebbe definire una classe...
qualche tecnologico fra di voi ha idea di cosa stia accadendo?

ihc

San Vegeta
15th December 2004, 12:29
posta il codice sorgente del file incriminato
il fatto che dica "sintax error" vuol dire che c'è un errore "grammaticale"

ihc'naib
15th December 2004, 13:54
ovviamente non posso postare il codice sorgente di una tesi universitaria su un forum pubblico...
in linea di massima, che sia un errore grammaticale lo capisco, ma interviene - debug alla mano - non appena cerco di definire una classe. in pratica, nel codice appare:

class Nomeclasse{

e' a questa riga appare il primo errore.. con tutta poi la sfilza di errori dovuti al fatto che non essendo definita la classe non capisce il nome delle funzioni etc. etc.

ora voglio provare a fare uno stupido "ciao mondo" che coinvolga una classe e vedo cosa succede...

ihc'naib
15th December 2004, 14:18
niente da fare. se creo una libreria con la definizione della classe arriva l'errore di "including".. vale a dire: metto la mia libreria nella stessa cartella dove sta iostream.h... la chiamo con la stessa sintassi con cui chiamo iostream.h, pero' l'errore me lo da' per la mia libreria, e per iostream no.

Se invece cerco di includere la definizione di classe nel codice, sopra il main (come facevo prima con le struct), mi da' errore alla prima invocazione di qualcosa che stia dentro la classe (come un dato membro public).. dicendo che non riconosce l'identifier. QUesto anche copiando il codice di un programma idiota su un sito d'apprendimento.
Ho il sospetto che sia una qualche impostazione interna al visual c++.. ma non ho veramente idea di dove mettere le mani..

ihc'

[Crilin]
15th December 2004, 16:07
Per quanto riguarda l'errore che ti da non so che dirti, probabilmente c'è qualche errore nella definizione della classe, o non viene richiamato qualche header necessario...
Posso dirti però che, se non lo sai, la tua libreria (.h) puoi includerla anche senza metterla nella stessa cartella degli headers del VC++, ma nella tua cartella di progetto. L'unica cosa che cambia è la sintassi della chiamata che a posto di essere con le < > è con le " "... Es:

#include "mylib.h" al posto di #include <mylib.h>

Risulta sicuramente più comodo così. Per quanto riguarda l'errore ribadisco che non posso aiutarti più di tanto: è parecchio che non programmo più e non ho neanche il VC++ sotto mano :(

San Vegeta
15th December 2004, 17:49
niente da fare. se creo una libreria con la definizione della classe arriva l'errore di "including".. vale a dire: metto la mia libreria nella stessa cartella dove sta iostream.h... la chiamo con la stessa sintassi con cui chiamo iostream.h, pero' l'errore me lo da' per la mia libreria, e per iostream no.


l'inclusione con le < > viene fatta per le librerie standard, come da richiesta dello standard, mentre si usano le " " per le librerie proprietarie. Ogni compilatore può fare quel cazzo che gli pare ovviamente, ma per certo le librerie racchiuse nelle parentesi angolate vengono cercate nel path, mentre le altre vengono cercate secondo i normali criteri di visibilità dei file.

ihc'naib
15th December 2004, 18:34
gia' provato anche a includere la mia libreria con le <>.. ma mi ignora.. cioe'.. fa come se niente fosse. proprio per questo avevo cercato di ricalcare la logica identica della sintassi di una normale libreria predefinita..

per quanto riguarda la definizione di classe: ho provato con le classi piu' banali.. e sopratutto, come detto, ho provato con codici funzionanti non miei. Non so davvero che pesci prendere. Se ritrovassi i vecchi codici di ordinamento potrei almeno controllare che le struct funzionino.. a dire il vero continuare a vedere 48 errors sta alimentando la mia sindrome di culo peso.

ihc'

davek
16th December 2004, 12:48
Questo e' il sorgente in c++ di un esempietto funzionante, include una classe che eredita da un'altra, un esempio mi sembra l'aiuto migliore, spero ti sia di aiuto

:wave:

Ps: non ti devi laureare in Informatica vero ? :look:

:sneer:

San Vegeta
17th December 2004, 18:24
pensa che un mio amico sta per laurearsi in informatica e non ha MAI scritto una linea di codice, manco una pagina di html fatta con frontpage

ihc'naib
17th December 2004, 18:43
Allora. anche senza l'ereditarieta (grazie cmq, davek) sono riuscito a fare funzionare perlomeno una classe. Adesso dovro' vedere se riesco a far funzionare una libreria, poi provare magari l'overloading. e infine riprovero' con quei sorgenti.

Sto studiando ingegneria elettronica curriculum biomedica. I sorgenti (e la tesina) sono di informatica medica..

IHc'

davek
22nd December 2004, 11:47
Sto studiando ingegneria elettronica curriculum biomedica.

Ero solo sarcastico, programmare in c++ è abbastanza ostico per tutti all'inizio (e non solo), l'esempio con l'ereditarietà era uno dei più completi che ti potevo spedire che avevo gia pronto (l'ho fatto durante il corso di Ing. del Software :angel: ). Altri esempi utili per l'utilizzo di librerie in specifico non mi pare di averne mi spiace :)



pensa che un mio amico sta per laurearsi in informatica e non ha MAI scritto una linea di codice, manco una pagina di html fatta con frontpage


Mi sembra un po esagerato ma purtroppo capita. (Ps: la schifezza prodotta da frontpage lo chiami html ? :ach: :) )
Miei compagni di corso cmq non hanno mai usato il c++ (lo usano come c), la programmazione a oggetti non viene spiegata se non in corsi specifici opzionali per la laurea triennale. Che ci vuoi fare? è cosi.