Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-12-2007, 15:10   #1
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
[C++] Problema funzione membro

Ho bisongo di far collaborare un analizzatore lessicale e uno grammaticale(Parser Generator) con una classe composta da me... in particolar modo l'analisi lessicale viene fatta dalla classe myparser.
Io devo costruire un oggetto della classe parser nella mia classe(che si chiama CIdentityDlg). Come devo procedere?
Spero di essere stato chiaro...Grazie...
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)
pa_co è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 17:28   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
devi aggiungere nella tua classe una variabile membro del tipo parser.

nel tuo .h, nella zona protected:

Codice:
protected:
    Cparser m_parser;
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 18:56   #3
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
inserendo:
Codice:
protected:
myparser m_parser;
Mi da i seguenti errori:
Codice:
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2146: syntax error : missing ';' before identifier 'm_parser'
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'myparser' : missing storage-class or type specifiers
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'm_parser' : missing storage-class or type specifiers
IdentityDlg.cpp
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2146: syntax error : missing ';' before identifier 'm_parser'
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'myparser' : missing storage-class or type specifiers
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'm_parser' : missing storage-class or type specifiers
Generating Code...
Error executing cl.exe.

Identity.exe - 6 error(s), 0 warning(s)
Per quale motivo?
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)
pa_co è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 19:24   #4
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
hai incluso il file header della classe parser?
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 21:22   #5
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
Si, ho aggiunto il file al progetto...

#include "myparser.h"


e poi ho aggiunto tale header anche nel mio progetto tramite il pulsante add to project...

non so cos'altro provare...è da due giorni che sono bloccato e non riesco a trovare soluzioni...cos'altro potrei fare?
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)
pa_co è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 22:46   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Perché non ci fai vedere un po' del codice della classe ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2007, 14:44   #7
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
Questa è "myparser.h" generata automaticamente dall'analizzatore grammaticale

Codice:
#ifndef _MYPARSER_H
#define _MYPARSER_H

#include <yycpars.h>

#define CORE 257
#define VIRGOLA 258
#define DELTA 259
#define PARENTESIAPERTA 260
#define PARENTESICHIUSA 261
#define NUMBER 262
/////////////////////////////////////////////////////////////////////////////
// myparser

#ifndef YYEXPPARSER
#define YYEXPPARSER
#endif

class YYEXPPARSER YYFAR myparser : public _YL yyfparser {
public:
	myparser();
	virtual ~myparser();

protected:
	void yytables();
	virtual void yyaction(int action);
#ifdef YYDEBUG
	void YYFAR* yyattribute1(int index) const;
	void yyinitdebug(void YYFAR** p, int count) const;
#endif

	// attribute functions
	virtual void yystacktoval(int index);
	virtual void yyvaltostack(int index);
	virtual void yylvaltoval();
	virtual void yyvaltolval();
	virtual void yylvaltostack(int index);

	virtual void YYFAR* yynewattribute(int count);
	virtual void yydeleteattribute(void YYFAR* attribute);
	virtual void yycopyattribute(void YYFAR* dest, const void YYFAR* src, int count);

public:
#line 23 ".\\myparser.y"

	// place any extra class members here
	//int parse();

#line 75 "myparser.h"
};

#ifndef YYPARSERNAME
#define YYPARSERNAME myparser
#endif

#line 40 ".\\myparser.y"

#ifndef YYSTYPE
#define YYSTYPE int
#endif

#line 88 "myparser.h"
#endif

Pe creare un oggetto di questo tipo nella mia classe IdentityDlg.cpp dichiaro
Codice:
#include "myparser.h"
e in IdentityDlg.h aggiungo sotto protected
Codice:
protected:
myparser m_parser;
Compilando mi da i seguenti errori:
Codice:
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2146: syntax error : missing ';' before identifier 'm_parser'
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'myparser' : missing storage-class or type specifiers
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'm_parser' : missing storage-class or type specifiers
IdentityDlg.cpp
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2146: syntax error : missing ';' before identifier 'm_parser'
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'myparser' : missing storage-class or type specifiers
C:\Documents and Settings\Pa_co\Desktop\identity + Linguaggio\Identity\IdentityDlg.h(244) : error C2501: 'm_parser' : missing storage-class or type specifiers
Generating Code...
Error executing cl.exe.

Identity.exe - 6 error(s), 0 warning(s)
dove sbaglio?
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)

Ultima modifica di pa_co : 14-12-2007 alle 14:47.
pa_co è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2007, 14:57   #8
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
#include "myparser.h" devi includerla nel tuo .h
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2007, 21:20   #9
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
Spostando l'include nel .h mi da questi errori....
Codice:
Deleting intermediate files and output files for project 'Identity - Win32 Release'.
--------------------Configuration: Identity - Win32 Release--------------------
Performing Custom Build Step on .\mylexer.l
Performing Custom Build Step on .\myparser.y
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
Identity.cpp
IdentityDlg.cpp
Generating Code...
Linking...
Identity.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall myparser::~myparser(void)" (??1myparser@@UAE@XZ)
IdentityDlg.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall myparser::~myparser(void)" (??1myparser@@UAE@XZ)
IdentityDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall myparser::myparser(void)" (??0myparser@@QAE@XZ)
Release/Identity.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

Identity.exe - 4 error(s), 0 warning(s)
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)
pa_co è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2007, 21:27   #10
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
sembra quasi che manchino le implementazioni nel file myparser.h del construttore e del distruttore della classe myparser.
mhhh ma hai incluso la classe myparser nel tuo progetto? viene compilata?
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2007, 01:15   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Devi aggiungere il ,cpp al tuo progetto. Infatti non stai compilando myparser.cpp.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2007, 12:34   #12
pa_co
Member
 
L'Avatar di pa_co
 
Iscritto dal: Jul 2006
Città: Milano
Messaggi: 131
Ho risolto, grazie mille per tutti i consigli...sono stati utilissimi...senza non ce l'avrei mai fatta...i problemi erano due...
il primo che non avevo incluso il .cpp nel progetto(pensavo che includere l'header bastasse)
il secondo era che utilizzavo la libreria sbagliata...

adesso sembra funzionare...
Grazie ancora...
__________________
"Due cose sono infinite: l'universo e la stupidità umana ma sull'universo nutro ancora dubbi..."(A. Einstein)
pa_co è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
TSMC brucia le tappe: la produzione dei ...
Lexar ARES, SSD da 1TB a 156,74€: PCIe G...
Un'altra novità in arrivo da Samsung: ec...
Bottiglie di plastica trasformate in cas...
ECOVACS T90 OMNI a 439€: ottimo prezzo p...
BYD ha ordinato altre 10 navi da traspor...
Maven Robotics esce dall'ombra: la scomm...
La serie Magic 9 di HONOR avrà anche una...
Offerte PC di oggi: RTX 5070 a meno di 8...
Tesla Roadster ha una data di lancio! Do...
La crisi delle memorie colpisce il Trump...
iPhone 18 Pro e Pro Max, svelata la capa...
Dreame L50 Ultra AE a 499€ (invece di 59...
Problemi di gioventù per i Pixel 11: Goo...
Le app di dating potrebbero aver stufato...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v