mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Librerie aggiuntive

Ciao,
mi presento: mi chiamo Marco, ho 19 anni, quasi 20, e frequento il primo
anno di Ing. Informatica a Pavia; come linguaggio di programmazione ho
studiato solo Java; ora ho la necessità di compilare, solo compilare, alcune
applicazioni in c/c++;  ho scaricato dalla Borland il compilatore da riga di
comando ed il classico programma che stampa a video "Ciao mondo; questo è il
mio primo programma", funziona, dato che è molto semplice; il programma che
devo compilare ora contiene alcune librerie "non-standard" come ad esempio
<sys/socket.h> <netdb.h> <netinet/in.h> <netinet/in_systm.h> <netinet/ip.h>
<netinet/ip_icmp.h>; ho trovato in rete un file aggiungtivo con altre
librerie da mettere nella cartella include ma queste non ci sono ancora,
dove posso trovarle? Grazie 100000 a chi mi aiuterà.
Ciao!

 Grazie 100000 a chi mi aiuterą.
Le librerie di cui parli sembrano proprio librerie linux piu' che
windows....
Non ti conviene installare linux e poi usare g++ per compilare?!?
Non ho nulla contro windows, ma se vuoi usare tale codice sotto windows
dovrai probabilmente riscriverne alcuni pezzi...
Tommy

 
Oppure se non vuoi reinstallare tutto prova ad usare Cygwin.
Dà un po' più di problemi rispetto a Linux, ma è un ambiente Unix (o 
quasi). Comunque Linux è meglio.
In pratica Cygwin è più facile da installare, ma poi di darà molti più 
problemi in fase di compilazione.
Linux è più complicato da installare ma poi vai tranquillo a compilare.

 ha scritto nel messaggio
news:bbiqih$9oms8$1...@ID-147723.news.dfncis.de...


 Non ti conviene installare linux e poi usare g++ per compilare?!?
Ok...quindi mi consiglio di installare linux, la suse 7.2 potrebbe andare
bene?
Grazie .
Ciao!

zeldan wrote:

sono headers non librerie.


la 7.2 mi sembra vecchiotta, e non vorrei che ti ritrovassi con un 
compilatore obsoleto (sotto
Linux gli aggiornamenti sono frequentissimi). Prova la Mandrake 9.1
Newsgroup: it.comp.lang.c++
Titolo: info su programma c++

Mi servirebbe un programma gia svolto in c++ di un solitario o un sito su
cui trovarlo.
Grazie per l'interessamento.
Daniel

 cui trovarlo.
Il solitario di windows non ti va bene?
:-)))))))


wrote:

Credo che il bamba sia interessato al sorgente cosi' puo'
darlo al professore e dire che lo ha fatto lui.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Esame in  vista eh?
- |:|DoZeR|:|
Daniel Magrini <daniel19@supereva..it> wrote in message
mzOj6.37489$Uj1.3...@twister2.tin.it...


Newsgroup: it.comp.lang.c++
Titolo: HELP non riesco a leggere un file di testo!!

*** post for FREE via your newsreader at 
post.newsfeeds.com
 ***
Ciao. Sto tentando di leggere un file di testo restituito da un
eseguibile.
Ho provato con fstream e fopen, ma qualsiasi sistema che uso mi
restituisce solo il primo carattere .....
non so che fare!
Ho provato anche ad aprirlo in binario!
L'unico modo in cui funziona e:
while (infile  >> c)
{
outfile<<c;
}
solo che quando vado a leggere il file di uscita ce sempre uno spazio
vuoto tra un carattere e l'altro
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 90,000 Newsgroups - 16 Different Servers! =-----

vuoto tra un carattere e l'altro
qui nin so :/
-- 
  _  _ >>Linux powered<< _     | "L'universo altro non č che un  
 | \| |___ _____ ___ ___|_|___ |  foruncolo del Divenire che si sta
 | .` | -_|     | -_|_ -| |_ -||  stemperando nel mare dell'Essere
 |_|\_|___|_|_|_|___|___|_|___||  ovvero nel Nulla"

Newsgroup: it.comp.lang.c++
Titolo: Porta seriale

dove trovo codice e materiale (elettronico o software)per testare la
comunicazione tra un programma scritto per comunicare con la porta
seriale ?
grazie a tutti ,
Fabio

Ciao,
Questo newsgroup si occupa del linguaggio di programmazione C++. Per
questo non e' il posto piu' adatto per porre domande come la tua. Ti
invito a cercare un gruppo il cui argomento sia piu' rispondente alle
tue esigenze. Avrai maggior probabilita' di risolvere il tuo problema ed
eviterai perdite di tempo a chi consulta it.comp.lang.c++ .
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: domanda sui vector

ciao a tutti,
sapete se da qualche parte lo standard stabilisce che la memoria 
utilizzata da un std::vector per i suoi elementi interni sia allocata in 
maniera contigua?
-- 
bash: impossibile: command not found

 maniera contigua?
Non lo prevede, anche se pare che tutte le implementazioni allochino in 
maniera contigua
(traduco: in teoria no, in pratica, di solito, si.)
Illuminante a tal proposito
http://groups-beta.google.com/group/it.comp.lang.c++/browse_frm/thread/7f381d3fb63067ea/c465cbe1c3f36fe9?q=vector+contigua+group:it.comp.lang.c%2B%2B&rnum=3&hl=en#c465cbe1c3f36fe9
-- 
Gerolamo 

Non ti so dare un riferimento, ma il Technical Corrigendum 1 dovrebbe
aver introdotto esplicitamente questo vincolo nello standard.
Ciao,
Nicola

 aver introdotto esplicitamente questo vincolo nello standard.
 
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-issues.html#69
La 2a edizione dello Standard (2003) incorpora la modifica proposta.
Max

 ha scritto nel messaggio 
news:d4t0r6$umh$1...@newsreader.mailgate.org...

Oooops, non lo sapevo.
Mi rimangio la risposta data, allora.
-- 
Gerolamo 

 
grazie 1000 a tutti per le risposte.


Newsgroup: it.comp.lang.c++
Titolo: Dimensione schermo (NUMERO PIXEL)

Ciao,
Uso TBC++4.5. Come si fa ad ottenere le dimensioni in pixel dello schermo?
Dovrebbe esistere una funzione che ottiene questi valori...
Grazie, Claudio.

Ho risolto il problema!!!
Claudio.
Claudio Cipolloni wrote in message ...


 Grazie, Claudio.
Non fa molto senso quello che chiedi.
Primo, non e' una domanda di C++.
Secondo, non dici qual'e' il tuo ambiente operativo e la libreria
grafica di interfaccia.
X11 e Motif sono gli standard generalmente usati; YMMV.
Se per caso tu stessi usando OSF/Motif 1.2, puoi dare un'occhiata a
XGetWindowAttributes ed a XGetGeometry (presupponendo che tu voglia le
dimensioni di una window, non dello schermo come hai scritto).
Se invece tu intendessi proprio lo schermo ed usassi X11 Release 6, ci
sono HeightOfScreen e WidthOfScreen.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Dovrebbe esistere una funzione che ottiene questi valori...
Se c'é non é comunque standard e probabilmente varia in base al
compilatore ed al sistema operativo che si sta adoperando.
Il Ghenio
-----
James: Adesso so finalmente cosa provano i panni messi in lavatrice!
Jesse: Avremo bisogno di un candeggio!!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c++
Titolo: Per chi se lo fosse dimenticato...

Come si scrive un programma...
http://mindprod.com/unmain.html
...contiene anche ottimi suggerimenti su come non farsi licenziare...
;-)
-- 
Luc.


Bellissimo...
E' incredibile notare come tutto cio' che e' contenuto nell'articolo si
applichi perfettamente al codice di cui devo fare la manutenzione!
Ciao
Cesare

Newsgroup: it.comp.lang.c++
Titolo: Ordinamento lista concatenata

Salve, sto svolgendo un esercizio per l'esame di informatica, si tratta
di programmazione in c++ e precisamente devo creare una funzione che
ordini una lista di libri per autore, o per titolo, alfabeticamente.
La lista è di tipo concatenato e sto provando ad ordinarla secondo
selection sort ma con scarsi risultati, vi posto qualche pezzo di
codice, vi prego datemi una mano, grazie.
Questa è la funzione che ho provato a scrivere, *pl è il puntatore
all'ultimo libro inserito nella lista, *pbuffer è un puntatore che uso
come  appoggio per lo scambio, *pmin è il puntatore al minimo che ho
trovato (procedura del selection sort), e *pcerca lo uso per scorrere
tutti i libri quando cerco il minimo. A volte la procedura la esegue
all'infinito, a volte ordina solamente una parte, non so cosa fare (si
può utilizzare qualsiasi tipo di ordinamento, se avete qualcosa di
più facile da implementare...)
Grazie
void Biblioteca_list::Ordina(Libro *pl)
{
Libro *pbuffer;
Libro *pmin;
Libro *pcerca;
string a;
string b;
pl=getFirst();
while(pl!=NULL)
{
	pmin=pl;
	pcerca=pl;
		while(pcerca!=NULL)
		{
			a=pcerca->getAutore();
			b=pmin->getAutore();
			if(a<b)
			{
				pmin=pcerca;
			}
			pcerca=pcerca->pnext;
		}
	pbuffer=(pmin->pnext);
	(CercaPrec(pmin)->pnext)=pbuffer;
	(pmin->pnext)=pl;
pl=pl->pnext;
}

 codice, vi prego datemi una mano, grazie.
Non credo che questo posto sia nato allo scopo di risolvere gli esercizi 
delle persone. Mi spiace...
ciao

 
Suppongo che questo esercizio debba provare la tua comprensione del 
linguaggio C++ e degli algoritmi di sorting (?).
Molto probabilmente hai un libro di testo da cui avresti dovuto studiare.
Se non hai capito qualcosa, fai riferimento a quel libro, oppure chiedi 
chiarimenti al tuo insegnante (non e' una vergogna).
Se non hai a disposizione ne' uno ne' l'altro (mi sembra strano),
puoi provare ad usare il tuo motore di ricerca preferito (es. Google) 
per cercare articoli o documentazione relativa all'argomento trattato 
(es. algoritmi di sorting, "selection sort C++", ...).
--
Roal Zanazzi
Newsgroup: it.comp.lang.c++
Titolo: classi Proxy

Salve,
ho letto qualche cosa su queste classi proxy, mi sembra sul libro di Gamma e
soci "Design Patterns" e su quello di Scott Meyer "More effective C++".
L'utilita' di queste classi proxy e' in sintesi striminzita, quella di
nascondere al client di una certa classe, certi suoi metodi e/o operatori,
che in sostanza verranno rimpiazzati da metodi della classe proxy.
In modo tale che il client/programmatore possa chiamare in un modo
"canonico" un certo operatore che altrimenti avrebbe una chiamata non di uso
comune.
Mi sembra di aver capito che vanno usate con le molle, nel senso che se non
ci si sta attenti si corre il rischio di dover ridefinire un mucchio di
operatori che sono disponibili nella classe di cui si "sta facendo il
proxy".
Ma oltre al caso di array n-dimensionali dove si utilizza l'operatore [],
dove e' che sono veramente utili questi proxy?
C'e' qualcuno che sa farmi un esempio completo di proxy di una classe che
sia utile?
Maurus

 Maurus
Un esempio puo' essere rappresentato dal paradigma Stub/Skeleton in CORBA o
in altri ambienti OO distribuiti,
dove la classe Stub, utilizzata dal client per invocare i servizi remoti
esportati dallo skeleton, e' implementata tramite un proxy, di modo che al
client venga nascosto il fatto che in realta' i metodi sull' oggetto che sta
invocando, non sono quelli che in realta' espletano il servizio, ma operano
solo da trasporto verso l' oggetto remoto.
Ivan

 sia utile?
A volte ci sono compiti gravosi e ripetitivi da eseguire per ottenere un
risultato da una certa classe, allora usi un proxy per fargli fare il lavoro
ripetitivo.
Immagina di implementare una RPC senza usare proxy, ti apri una socket, ti
devi fare il marshalling dei parametri, implementare un protocollo dei cui
dettagli tecnici alla tua applicazione non importa minimamente, devi
aspettare la risposta, spacchettare i risultati eccetera, magari per avere
chiamato un metodo remoto tipo c = Math.Sum(a,b).
Con un proxy che definisce la funzione Sum(a,b) (magari generato
automaticamente da qualche tool specifico) e che si occupa lui di fare tutto
il lavoro sporco sicuramente scriverai del codice + comprensibile e +
maneggevole, d'altronde a te interessa solo il risultato di a + b, non di
dovere tirare in ballo l'implementazione necessaria a effettuarne
l'esecuzione in remoto, per cui scriverai semplicemente c =
MathProxy.Sum(a,b) invece che tutte le chiamate necessarie per implementare
"a mano" l'RPC.
Spero di essere stato di aiuto.
Ciao
Newsgroup: it.comp.lang.c++
Titolo: recvfrom()

Ciao a tutti!!!!
Ho creato un socket in c++ per fare in modo che un server riceva e invvi
messaggi ad un client. Il mio prooblema è che il messaggio del client è
costituito da un vettore di sette double che prima di essere inviato viene
convertito in 56 bytes di int da 8 bit. Tuttavia tramite la procedura
recvfrom il messaggio ricevuto viene depositato in un'area di memoria di
tipo char. come faccio a ricostruire e leggere il messaggio iniziale?

 tipo char. come faccio a ricostruire e leggere il messaggio iniziale?
un cast?
char *rcv_buffer = new char[56];
rcvfrom(..., rcv_buffer, ...);
double *double_buffer = ( double* )rcv_buffer;
ciao,
Nids
ps: ovviamente hai usato le funzioni di conversione dal tuo endian ed il
"network order" per ogni elemento dell'array. Vero?
pps: sei OT io andrei su it.comp.programmare.win32 o sul suo equivalente
linux/unix.

Newsgroup: it.comp.lang.c++
Titolo: errore con fdftoolkit da usare come activex con c++

salve, 
ho una strano problema con fdftoolkitforwindows della adobe, uando
cerco di registrare la dll fdfacx come da manuale e altri post ottengo
il seguente messaggio di errore:
LoadLibrary ("c:\windows\system32\fdfacx.dll") non riuscito -
Impossibile trovare la procedura specificata.
questo errore lo ricevo sia su windows xp che su millenium (cambia
solo che nel millenium mi da un return code invece della descrizione).
ho provato sia da riga di comando "regsvr32 fdfacx.dll" che
trascinando la dll sul programma regsvr32.
Grazie per l'aiuto
Maurizio

Ciao,
Questo newsgroup si occupa del linguaggio di programmazione C++. Per
questo non e' il posto piu' adatto per porre domande come la tua. Ti
invito a cercare un gruppo il cui argomento sia piu' rispondente alle
tue esigenze. Avrai maggior probabilita' di risolvere il tuo problema ed
eviterai perdite di tempo a chi consulta it.comp.lang.c++ .
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Crystal report

Qualcuno sa come stampare il Report footer su ogni pagina? (stampando solo
un numero fisso di record per pagina)
--
Grazie, Alberto (alias ALCAU)

un numero fisso di record per pagina)
Sei fuori tema qui.
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----

Scusate !!
Newsgroup: it.comp.lang.c++
Titolo: AIUTO !!!! Problema urgente da risolvere

Premetto che sto usando un compilatore TURBO C++ 3.0 della Borland.
Il mio problema e' il seguente:
il mio progetto e' formato da piu' moduli .cpp , ognuno dei quali necessita
di includere file header .h .
Ogni modulo compilato singolarmente non mi da problemi.
Al momento del linkaggio pero' il compilatore mi da errore di duplicazione
di simbolo.
Ho provato ad inserire in ogni header creato da me le direttive per il
compilatore
#ifndef  file_h
#define file_h
   // corpo di file.h
#endif     // file_h
ma non e' servito a niente (sembra che il mio compilatore non se ne accorga
proprio).
Ho anche provato ad usare la "extern" al posto di includere l'header in cui
e' dichiarata la variabile che mi interessa ma cosi' incontro problemi con
le strutture:
es:
file1.cpp
#include "file2.h"
typedef struct  t_i {
 int x;
 int y;
 float z;
} ;
struct t_i i;
void main(void)
{
 i.x = 10;
 i.y = 20;
 i.z = 30.5;
 valore();
}
file2.cpp
#include "vito1.h"
extern struct t_i i;
void valore(void)
{
 i.x = 20;
 i.y = 40;
 i.z = 80.1;
}
file2.h
void valore(void);
al linkaggio non mi riconosce i membri della struttura (x y e z)
AIUTATEMI !!!!!!!!!
gia...@mail.media.it

di includere file header .h .
Nei file di header devi mettere tutte le necessarie
DICHIARAZIONI, ma nessuna DEFINIZIONE.
E` chiaro dal tuo errore di linker che nel tuo primo
tentativo hai messo negli header le DEFINIZIONI,
e cosi` violi la "one-definition rule": le entita` vanno
definite *una e una sola volta* nell'intero programma.
Nel secondo tentativo, hai tolto dall'header la
dichiarazione del tipo, da cui, errori diversi!
Come si dice in artiglieria, hai "fatto forchetta" -- un
colpo troppo lungo, uno troppo corto, ormai hai "preso
il tiro" e non dovresti piu` sbagliare...!-)
Metti dunque nell'header file le DICHIARAZIONI:
    typedef struct qualcosa {
        // i vari campi
    } qualcosa;
    extern qualcosa lavariabile;
e, IN UNO E UNO SOLO dei tuoi sorgenti .cpp, la
relativa DEFINIZIONE (dopo l'include dell'header):
    qualcosa lavariabile;
In questo caso, e` la mancanza di "extern" che dice che
questa e` una definizione, non solo una dichiarazione;
per una funzione, lo e` invece la presenza del "corpo"
(il blocco fra graffe che implementa la funzione stessa).
(Alternativamente, sempre per una variabile, anche se
"extern" fosse presente, si tratta di definizione se la
variabile e` contestualmente inizializzata).
Alex

extern struct t_i i;
questo è corretto, e funziona rispettando le regole di programmazione che ti
ho detto.
Saluti.
Newsgroup: it.comp.lang.c++
Titolo: Numeri Random

Salve a tutto il NG. Dovendo scrivere delle routines in c++ standard (lo
stesso codice deve essere compilato sia in ambiente windows che linux), c'č
qualche libreria c++ per poter gestire numeri random?.Grazie

 qualche libreria c++ per poter gestire numeri random?.Grazie
dunque, non ho un link preciso, perņ se provi a fare una ricerca su
Marseinne Twister dovresti trovare un buon generatore di numeri
casuali scritto in diversi ldp, tra cui il C++. Per la gioia di grandi
e piccini dovrebbe essere pure platform-indipendent.

 e piccini dovrebbe essere pure platform-indipendent.
magari se cerca mersenne twister lo trova pure

 wrote in message
news:2333605.P...@iol.it...

apprezzo il fatto che se non gli rispondevo io (seppur sbagliando) tu
non ti saresti mai sognato di farlo, mentre per correggere un errore
ci hai messo poco meno di un'ora...

 ci hai messo poco meno di un'ora...
be', io allora l'ho letto, non ho i thread completi, ho letto solo la 
tua risposta, e mi sembrava giusto correggerla
Newsgroup: it.comp.lang.c++
Titolo: INTERNAL COMPILER ERROR

Quando in compilazione in Visual C++ mi spunta il seguente messaggio:
fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 1786)
come posso risolvere il problema?
Li struzione che fa riferimento l'errore è corretta, anche perchè prima
compilava.
Grazie.
--
Salvatore

 come posso risolvere il problema?
L'errore non e' tuo ma e' un bug del compilatore. Di solito
basta rimescolare il codice ( in modo che non cambi il comportamento),
tipo dichiara prima o dopo una variabile.
Se non bastasse chiama il servizio clienti M$.
Ciao
Gaetano.
PS. Bill for President.
-- 
Posted from 
nts-03.mm.eutelsat.org
 [194.214.173.15] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

come posso risolvere il problema?
Posta sul ng giusto (it.comp.programmare.win32) io comunque in questi
casi cancello i file di progetto e lo ricreo.
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di it.comp.lang (per i linguaggi di
programmazione senza un gruppo apposito e per i confronti fra i
linguaggi) partecipa alla discussione sul manifesto su it.news.gruppi.

casi cancello i file di progetto e lo ricreo.
Premetto che questo fantomatico errore una volta l'ho ottenuto anch'io
tentando di ricompilare con il VC++ un progetto precedentemente
scritto con altri compilatori.
Dal momento che si trattava di codice c++ perfettamente standard non
vedo perché questa questione dovrebbe essere affrontata su
it.comp.programmare.win32
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----

it.comp.programmare.win32
Perché penso sia un bug di VC++ e non una non conformità allo standard
e che quindi su it.comp.programmare.win32 (dove metà delle persone
usano VC++) magari sanno come risolverlo.


Newsgroup: it.comp.lang.c++
Titolo: Parametro di ritorno in evento ATL

Ciao a tutti!
Ho bisogno di un aiuto per capire un problema di cui non riesco ad
uscirne.
Ho una DLL scritta con ATL che genera un evento catturato da una
applicazione in VB. L'evento passa dei parametri e vorrei che se
l'applicazione gestisce l'evento modifichi il valore di un parametro
preposto a questa funzione. Sostanzialmente vorrei poter fare ciň che
fa il parametro Cancel nell'evento QueryUnload della form in VB. Ho
provato a dichiarare il parametro come [in, out] ma non funziona.
COme posso fare ?
Grazie per l'attenzione!
Roberto

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
		server 
newsgroups.borland.com
 (prevalentemente in 
		inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: metere file dentro variabile

file ce scritto : 12345 45 67 89 123 456
come fare per metere il
45 dentro variabile a
67 variabile b
89 variabile c
123 vairabile d
etc
a la fine passare a la ligna seguente
fine alla fine del file
grazie

 etc
unsigned int a,c,b,d;
ifstream in ("tuofile",ios::nocreate);
in >> a;
in >> b;
in >> c;
in >> d;
-- 
Il solo ed unico Piero Tofy
Web: 
http://www.pierotofy.it

 in >> d;
Cosě metti 12345 dentro a. Forse risolvi mettendoci
in.ignore();
in >> a;
etc.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 in.ignore();
Che io sappia questo ignora solo un carattere.
Immagino che si possa definire anche un
int _trash;
e ficcarci il primo valore.
-- 
[ RiK0                                ]
[ non credo negli schemi non vincenti ]
[ two is an odd prime number          ]

 Che io sappia questo ignora solo un carattere.
Ops!


 a écrit dans le 
message de news: 41E6BF65...@emagsoftware.it...


 #include <fstream.h>
questi dovrebbero essere <iostream> ed <fstream>. E poi uno
using namespace std;
Anche se a me, personalmente, non piace :P
-- 
Mat/tia Belletti             - Graduate student @ 
cs.unibo.it
ICQ: 33292311                - email: 
mbel...@cs.unibo.it
IRC: RedGlow                 - site(s): 
http://mbellett.web.cs.unibo.it/
Red...@jabber.linux.it/Gaim
 - Linux user 299762 @ machine 213003

 uso dev c++ e mi fa errori avete un altro prog free meglio di dev c++?
Per gli errori, è insuperabile ReadManual 3.0.
-- 
Gli errori non sono quasi mai dovuti al compilatore, Quasi sempre sono
colpa del programmatore. Inoltre due compilatori standard, dovrebbero
dare più o meno gli stessi errori[0].
-------------
[0]: ovviamente non è vero sempre... uno potrebbe essere più permissivo
e dare warning invece di errori e simile-
Newsgroup: it.comp.lang.c++
Titolo: Dbsee++ 6.0 per MFC

 --
Noi lo stiamo utilizzando, ed è sicuramente un ottimo strumento.
(Italiano)
Ovviamente deve essere utilizzato per sviluppare un certo tipo di
gestionale, permette di standardizzare l'interfaccia utente, ed inoltre
non impone limiti all'utilizzo di altre librerie,
o quant'altro presente nell'ambiente Windows.
L'utilizzo di un strumento C.A.S.E. come Dbsee++ inoltre permette di
concentrarsi maggiormente sull'applicazione da sviluppare, non dovendo
preoccuparti di aggiornare librerie create da te.
Inoltre è uno strumento in continua crescita, su cui lavorano dei
professionisti.
Il consiglio è quello di provarlo, per maggiori informazioni
www.dbsee.com
.
Se hai altre domande sono a tua disposizione scrivi!!!!!
Ciao!!

...

Newsgroup: it.comp.lang.c++
Titolo: Visual C++ 5.0 e 6.0.

Salve a tutti.
Premetto che sono un principiante in merito al C/C++ e alla programmazione
in generale.
Il mio problema e' il seguente:
ho un workspace realizzato con Visual C++ 5.0 che non riesco ad aprire con
la versione 6.0 Enterprise di cui dispongo.
Qualcuno puo' aiutarmi?

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: [OT] Ma da leggere! Palladium ....

Avete mai sentito parlare di Palladium ?
http://www.apogeonline.com/webzine/2002/07/02/01/200207020102
Spero ci sarà una sommossa a livello mondiale su questo tema,
ne va della Vostra libertà...

Yena ha scritto...

<QUOTE>
Nei computer del prossimo futuro potrà girare soltanto software 
autorizzato (indovinate da chi), in modo da offrire finalmente diritti 
digitali realmente protetti all'industria del software, del cinema e del 
disco. I primi prototipi sono già in vendita. Effetti collaterali 
trascurabili: l'eliminazione definitiva di Linux e delle libertà degli 
utenti
</QUOTE>
Mi sembrano frasi simili a quelle che la Sinistra politica italiana disse 
per la legge sulle rogatorie ("Tutti i mafiosi e pedofili usciranno dalle 
carceri!!!"). Come abbiamo poi visto era solo una faziosa falsità.
PS: scusate il paragone OT-Politico.
-- 
Luc.

In effetti mi sembra una cazzata...
guardate il casino che ha fatto l'antitrust americana alla Microsoft per 
molto meno...


era una notizia che ha riportato anche Punto Informatico, corredato da 
un secondo articolo su LongHorn, famigerato futuro sistema operativo di 
MS per l'architettura Palladium... spero che esista ancora l'antitrust...

molto meno...
...e guarda cos'hanno ottenuto.
siamo ot e non aggiungero' altro su questo ng.
saluti giusto per dire.
-- 
      Gianni "bugbarbeq" Rondinini, 26+15, RA, 193, 152
   VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 BMW 530D "BatMobile EVO" Driver - Escortone da 500 CV dreamer
Kawasaki "Gas Gas" ZZ-R 1100 - HD Electra Ultra Classic Dreamer
   On contrary of popular belief, Unix *IS* user friendly:
    it just appears to be selective who it is friend with

 Luc.

 
Sperare resta lecito, pensa pero' che in un futuro (molto triste) si
prospettera' forse questa possibilita' :
1. usi sistemi closed con spyware e controlli (tipo palladium)
2. usi sistemi open , e automaticamente verrai bollato come sovversivo...
mi sembra un po' triste... spero solo che l'utente medio non sia cosi'
cieco da vedere che ci stanno minando il terreno..
Newsgroup: it.comp.lang.c++
Titolo: Giochi ??

Chi mi potrebbe illuminare riguardo ai "motori" dei giochi dato che ho letto
che la maggior parte sono scritti in c++
Dove posso trovare ulteriori info (siti,manuali,etc..)
tnx  ,Cek
c...@libero.it
sol...@iol.it


La Raven ha messo a disposizione i source di Hexen Heretic. Io non mi
ricordo da dove l'ho scaricato (forse Tucows) ma prova a cercare un
file che si chiama Raven_source.exe ed e' di 900 Kb (Naturalmente non
hanno incluso le risorse)
Ciao AzriEl

tnx  ,Cek
Mi pare che su un cd di TGM ci fossero addirittura i sorgenti di Wolfenstein
3D e di Doom,totalmente scritti in C++ con l'aiuto di ASM.Di conseguenza
dovrebbero essere disponibili anche in rete sul sito della ID
Software.Dovrebbe essere disponibile(ma non ne sono certo al 100%)anche il
'Quake C',che é una versione del C creata dalla ID appositamente per la
programmazione di 'Quake'.
Il Ghenio

 tnx  ,Cek
Dal sito della id Soft. avevo trovato un link dal quale si poteva scaricare il
source code ti tutti i loro giochi (da Wolf3d fino a Quake2GroundZero ).

 wrote in message news:7p75dp$l26$4...@nslave1.tin.it...

se ti interessa prova a guardare questi siti, spiegano molto sulla
programmazione dei giochi:
www.gpi.eden.it
www.gameprog.com
e se ti interessano in particolare i motori 3D prova questo:
www.genesis3d.com

Newsgroup: it.comp.lang.c++
Titolo: Libro su design pattern e altro

Mi sono reso conto che nella programmazione a oggetti la
progettazione e' piu' importante che mai.. al che, oltre
alla sintassi per la quale mi sono gia' attrezzato, vorrei
qualche consiglio su libri ad esempio su design pattern e
anche libri che diano consigli, "trucchi" del mestiere e
cosi' via.
-- 
Saluti,
 Francesco Cipriani

Gamma, E. & C. "Design Patterns", Addison-Wesley, e' il libro che ha
dato il via al fermento sui pattern. E' un libro secondo me abbastanza
leggibile da parte di chi ha esperienza di programmazione, ed e' di quei
libri che danno la forma giusta alla testa.
Coplien, J. "Multi-Paradigm Design for C++", Addison-Wesley, Un po' piu'
difficile del precedente, ma altrettanto fondamentale.
S. Meyers, "Effective C++", 2nd Edition, Addison-Wesley
S. Meyers, "More Effective C++", Addison-Wesley
S. Meyers, "Effective C++ CD", Addison-Wesley (riunisce i precedenti +
altro)
Molto piu' pragmatici, sono compendi di tecniche per usare bene il C++
Su http//
www.accu.org
 , sito dell'Association of C and C++ Users, trovi
una splendida bibliografia annotata.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Borland C++builder  3,fa filone.c a tanti files.c

Ciao,č da una settimana che sto programmando usando c++builder 3
mi trovo un file fatto da una altra persona un pň di fretta,in questo file 
sono raggruppate su migliaia di righe tutte le funzioni associate ad eventi 
associati a bottoni comandi check boxes ecc,quindi funzioni di tipo 
_fastcall ecc ecc
vorrei ,per ordine,raggruppare in files  .c  piů piccoli .
Per favore sapete indicarmi il modo giusto per fare ciň?grazie molte
ciao a tutti 

 Per favore sapete indicarmi il modo giusto per fare ciò?grazie molte
Il problema e' che sospetto che l'IDE si aspetti tutte le funzioni
membro relative ad una specifica form nella "unit" corrispondente.
Quello che potresti fare pero' e' spostare la logica di comportamento
dell'applicazione al di fuori della form, facendo si che le funzioni
membro associate agli eventi si limitino a chiamare altre funzioni,
indipendenti dalla GUI vera e propria.
Ciao,
Nicola

 Per favore sapete indicarmi il modo giusto per fare ciò?grazie molte
Il problema e' che sospetto che l'IDE si aspetti tutte le funzioni
membro relative ad una specifica form nella "unit" corrispondente.
Quello che potresti fare pero' e' spostare la logica di comportamento
dell'applicazione al di fuori della form, facendo si che le funzioni
membro associate agli eventi si limitino a chiamare altre funzioni,
indipendenti dalla GUI vera e propria.
e' quello che temevo,grazie,mi hai evitato di spenderci troppe energie
buona serata a te e a tutti

Newsgroup: it.comp.lang.c++
Titolo: sempre pulizia dello schermo

Ciao a Tutti
Scusate se insisto su questo tema.
Ho provato a cercare info su internet per ripulire lo schermo sotto Windows
me (con il programma che gira su consolle DOS) utilizzando Dev C++ 4 ma
niente. Non esiste nemmeno un newgroup in italiano di questo compilatore e
quindi non so che fare.
C'e' qualche anima buona che ha gia risolto questo problema e puo' darmi
indicazioni in merito?
Grazie
Maxy
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.298 / Virus Database: 161 - Release Date: 13/11/2001

 Version: 6.0.298 / Virus Database: 161 - Release Date: 13/11/2001
-- 
Posted from  [217.56.207.225] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

niente.
Copia e icolla da un vecchio messaggio de Il Ghenio:
#include<cstdlib>
std::system("cls");		//su WinDos
std::system("clear");	//su Linux
Comunque se c'è qualcosa non standard e non c'è un gruppo apposito
puoi sempre postare su it.comp.programmare.
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di un newsgroup generico in cui si
possa parlare di quei linguaggi di programmazione senza un gruppo
apposito vota per it.comp.lang su it.news.votazioni.

Perfetto, funziona,
Grazie :-)
Maxy
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.303 / Virus Database: 164 - Release Date: 24/11/2001
Newsgroup: it.comp.lang.c++
Titolo: determinare numero maggiore

devo fare suddetto programma in C, ho un dubbio a proposito, dopo aver
inserito le 4 variabili, devo determinare solo un numero, il più alto di
tutti. come fare? se ho come variabili, a, b,c,d, devo scrivere tutte le
possibile combinazioni? a>b a>c a>c ecc....
c'è un preciso comando a rigardo?
ciauz
--
by ..::Retebug::..
* Vorrei vivere in un mondo senza CANCELLI e FINESTRE *
* I want to live in a world without GATES and WINDOWS*

 possibile combinazioni? a>b a>c a>c ecc....
Potresti ad esempio creare una struttura dati che gestisca più
efficientemente i tuoi numeri, ad esempio già ponendoli in un'array ti
basterebbero 'n - 1' confronti.
Questo è il metodo migliore, almeno a quanto ne so, mi manca ancora mezzo
esame di algoritmi e strutture dati e poi saprò dirti meglio eh eh
Gabriele

 ha scritto nel messaggio
news:xniu9.33918$dj7.2...@tornado.fastwebnet.it...


 c'è un preciso comando a rigardo?
Si; l'algoritmo std::max_element() della standard library.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it
Newsgroup: it.comp.lang.c++
Titolo: Overload operatore, conversione ambigua

Salve a tutti,
vi chiedo un aiuto per capire come mai il compilatore genera l'errore
di conversione ambigua nel seguente codice:
template <class T>
class VarSet
{
public:
        VarSet(T t) : m_t(t) {}
        operator T () const { return m_t; }
        operator const T& () const { return m_t; }
private:
        T m_t;
};
// Questa classe non ha senso, è solo per replicare l'errore
class Test
{
public:
        Test(int i) : m_prova(i) {}
        int getI() { return m_prova; }
private:
        VarSet<int> m_prova;
};
int main(int argc, char* argv[])
{
        Test t(10);
        // La chiamata a getI genera l'errore main.cpp: In member
function 'int Test::getI()':
       // main.cpp:22: error: conversion from 'VarSet<int>' to 'int'
is ambiguous
       // main.cpp:10: note: candidates are: VarSet<T>::operator const
T&() const [with T = int]
       // main.cpp:9: note:                 VarSet<T>::operator T()
const [with T = int]
       // make: *** [main] Error 1
        int a = t.getI();
        return 0;
}
La funzione getI() restituisce un "int", non un "const int&"...perchè
il compilatore non riesce a capire quale operatore utilizzare?
Qualcuno mi potrebbe spiegare il meccanismo che porta a quest'errore?!
Grazie mille
Ciao
JJ

 il compilatore non riesce a capire quale operatore utilizzare?
Perche' di fatto entrambe le versioni potrebbero andare bene.
Tu ritorni un int per cui la semantica e' quella di una copia. Se il
valore originale che copi era un const int o un const int& non cambia
nulla. Per cui lui non capisce quale dei due vuoi.
Di fatto quando hai una *copia* il const non conta. Se l'oggetto che tu
stai copiando era const non ti interessa: il nuovo oggetto che hai
copiato ha tutto il diritto di non esserlo.
-- 
-riko
Newsgroup: it.comp.lang.c++
Titolo: Overloading di new[] and delete[]

Se qualcuno ha qualche idea me lo faccia sapere.
Non c'e' soluzione generica salvo cambiare compilatore (o libreria).
Perň potrebbe esserci ualche soluzione specifica.
Se c'e' una sola classe che usa questa feature, forse puoi riscrivere la
classe in qualche modo tale da renderla funzionante senza.
Dipende da cosa fa la classe e soprattutto da perchč overloada new[] e 
delete[].
-- 
Posted from 
adsl-21-135.38-151.net24.it
 [151.38.135.21] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao,
ti ringrazio per avermi risposto. Il mio problema non e' quello di far
funzionare la libreria: funziona perfettamente anche se NON si fa
l'overloading di new[] e delete[] ! Infatti tutto cio' che viene fatto in
new[] e' di fare un test se la quantita' di memoria che si vuole allocare e'
superiore ad un certo valore e in tal caso ritornare un puntatore ad un
altro buffer che poi non verra' mai deallocato da delete[]. Cio' si rende
necessario poiche' quando si vanno ad allocare grandi quantita' di memoria ,
decine e decine di MB, alcuni compilatori si comportano in modo un po'
"bizzarro" - ad esempio potrebbe succedere di allocare qualche decina di MB
poi deallocare tale memoria e in seguito allocarne qualche altra decina,
bene in un tale scenario alcuni compilatori potrebbero non restituire la
memoria deallocata, ma marcarla in qualche modo come "libera", per cui si
avrebbe un uso doppio (o quello che e' ...) di memoria. Comunque questo e'
il codice:
inline void *modint::operator new[] (size_t size)
{
    size /= sizeof (modint);
    if (size > Memorytreshold)
    {
        assert (!workspaceused);
        assert (size <= Maxblocksize);
        workspaceused = 1;
        return (void *) workspace;
    }
    else
        return (void *) new rawtype[size];
}
inline void modint::operator delete[] (void *data)
{
    if (data == (void *) workspace)
    {
        assert (workspaceused);
        workspaceused = 0;
    }
    else
        delete[] (rawtype *) data;
}
Ciao, ciao Stefano
""Andrea Ferro"" <And...@UrkaDVD.it> wrote in message
news:A119749FAE32F94FA6...@pdc.UrkaNet.com...


Newsgroup: it.comp.lang.c++
Titolo: cin e cout: riepilogando

Non sono delle istruzioni
Non sono delle funzioni, o meglio lo erano quando si usava
iostream.h?
Con il nuovo standard sono invece degli oggetti ?
Grazie e scusate per le idee confuse :)

Non sono sempre stati degli oggetti (strem) ?
-- 
Sergio Pedone
GNU/Linux Slackware
Java

 Non sono sempre stati degli oggetti (strem) ?
stream :-)


...

cin e cout (e cerr) sono sempre state istanze delle classi istream e
ostream. Il termine 'istruzione' non denota alcun costrutto primitivo
del C++.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: 1 long in 4 byte

Come faccio a convertire un long (formato da 4 byte) in 4 byte singoli ????
Sto cercando un metodo semplice e rapido.
Please help me!

Piero wrote:

  Please help me!
long var;
char v2[4];
for (int i=0; i<4; i++)
    v2[i]=((char *)&var)[i]
Vedi un pò se va bene...
--------------------
Giulio Argiolas
--------------------

 Sto cercando un metodo semplice e rapido.
union LongData
{
 long          Long;
 unsigned char Char[4;
};
Tu fai:
LongData D;
D.Long=234556788;
E ti trovi i bytes in D.Char[0,1,2,3....
MA ATTENTO!!!!
L'ordine dei bytes dipende dal tipo di processore che hai. Se il tuo
processore e' big-endian sono in ordine 0123, se, invece, e'
little-endian, 1032 (credo... non mi ricordo bene).
Oppure, puoi sempre fare
long a;
int  n;
Byte=(a & (0xff<<(n*8))) >> (n*8);
Ciao!
-- 
 Daniele
------------------------ Fuck The Monopoly ! -----------------------
             ______                           ____                  
            /_  __/                          / __/                  
             / /__     __  __  __           / /_                    
            / //_  /  /_  /   / / /\/\     /_  / /  / \/ \/     
           / //__ /_ /__ /__ /_/ /   /    __/ / /__/  /\ /\       
          /_/ Italia                     /___/                      
 
  -> 267 <- days and telecom's monopoly will be fucked forever !    
 
--------------------------------------------------------------------
 Daniele Orlandi - Utility Line Italia - 
http://www.xt.net
 
 Via Mezzera 29/A - 20030 Seveso (MI) - Italy - FAX: 
++39(362)540153
--------------------------------------------------------------------


Non e' proprio VB questo! si potesse in VB fare un gioco simile!...
devi:
dim L as long
dim B(4) as byte
L = 'un numero long
B(0) = L \ (256^3)
B(1) = (L \ (256^2)) mod 256
B(2) = (L \ 256) mod 256
B(3) = L mod 256
spiegazione:
ogni volta dividi per una volta in piu' la capacita' di un byte (256)
(divisione intera) togliendo i byte piu' piccoli, e fai modulo 256 per
togliere i byte piu' grandi.
		Stefano

 Non e' proprio VB questo! si potesse in VB fare un gioco simile!...
Hai ragione, e' colpa di chi ha crosspostato il messaggio originale in
it.comp.lang.c++ e it.comp.lang.visual-basic.
Io, avendolo letto su c++, ho risposto come si poteva fare in c++.
Ciao!
-- 
 Daniele
------------------------ Fuck The Monopoly ! -----------------------
             ______                           ____                  
            /_  __/                          / __/                  
             / /__     __  __  __           / /_                    
            / //_  /  /_  /   / / /\/\     /_  / /  / \/ \/     
           / //__ /_ /__ /__ /_/ /   /    __/ / /__/  /\ /\       
          /_/ Italia                     /___/                      
 
  -> 266 <- days and telecom's monopoly will be fucked forever !    

Newsgroup: it.comp.lang.c++
Titolo: Re: riformulazione calcolo con "exp": float => int

 y = (ax^3+bx^2+cx+d)*exp(-kx+w)
per valutare il polinomio c'è l'algoritmo di Horner
http://it.wikipedia.org/wiki/Regola_di_Horner
Mauro

Che deve essere iterata, nel senso che la y viene
Se lavori con CPU e FPU hardware...conviene lavorare direttamente
con i floating point perchč sfrutti il coprocessore matematico che
lavora in parallelo alla CPU.
Se lavori con CPU senza FPU hardware, puoi riscalare i valori convertendoli
da float a interi moltiplicandoli per un fattore abbastanza alto (1000, 
10000... etc.)
in modo da evitare di perdere eccessivamente precisione.
Il fattore di scale dipende dal range dei tuoi numeri e dalla dimensione 
dell'
intero che intendi usare (16/32/64bit).
In generale, per ottimizzare il codice con tecniche di questo tipo pero' 
dipende
fortemente dalla CPU sulla quale va poi eseguito il codice, e potrebbe
essere che su un' altra architettura la soluzione trovata sia pessima.....
Le CPU a 8/16bit, se lavorano con interi a 32/64 bit non risultano molto
performanti...
Su CPU x86, tra cache, muticore, unita FPU risulta difficile stabilire come
ottimizzare...meglio concentrarsi sul problema nel modo piu' naturale 
possibile...
bye
brix

 coi float...
<snip>
Se non ci sono problemi di performance, mi concentrerei più sul problema
numerico che su quello strettamente implementativo. I problemi di
instabilità, arrotondamenti, propagazione dell'errore, sono sicuramente
più pregnanti in questi ambiti.
Per esperienza (ho le mani su diversi lavori più o meno matematici o
ingegneristici) consiglio di trovare prima l'algoritmo giusto che ti da
i risultati corretti; in questo modo elimini prima uno dei problemi
(appunto, quello dell'algoritmo). Trovare quindi un set di test e
risultati con cui effettuare il confronto. Valutare quindi le possibili
ottimizzazioni del codice cosi' come sono (per esempio, banale, spostare
le istruzioni costanti in una iterazione al di fuori dei loop).
Se necessario, solo allora implementare soluzione algoritmiche diverse,
che partono per esempio con algoritmi compultazionalmente diversi (ad
esempio, passare da un algoritmo semplicemente incrementale ad uno di
tipo divide-et-impera ).
Ad ogni variazione dell'algoritmo devono essere verificati i risultati,
confrontandoli con quelli iniziali, con alcuni calcolati in modo diverso
(ad esempio, analiticamente) e valutando se le eventuali differenze
possono essere accettabili in termini di precisione.
Come vedi, il tuo problema è solo alla fine di tutto.
Newsgroup: it.comp.lang.c++
Titolo: Uso della classe CRegistry

Ciao a tutti ho un problema nell'utilizzo della classe CRegistry ho
scaricato la libreria con header e cpp, ma il compilatore che sto
usando (Dev C++ 4, Windows XP Pro) si rifiuta di includerla, per un
motivo che non riesco a capire.
Questo è l'output dell'errore:
ISO C++ forbids declaration of 'SetOwner' with no type
...
qualcuno ha idea da cosa possa dipendere? Qualche dipendenza? Se
conoscete una classe analoga fatemi sapere... grazie in anticipo.
Il sito da cui ho scaricato la libreria è: 
www.codeproject.com


Sei sicuro che supporti g++? I nomi che cominciano per 'C' sono tipici
di chi usa VC++.
Ciao,
Nicola

mmm, puo' essere, nn ci avevo pensato... allora sai dirmi che classe
usare in DEVC++ per accedere al registro di Windows?
:)
Nicola Musatti ha scritto:

Newsgroup: it.comp.lang.c++
Titolo: dubbio su RTTI

Salve a tutti, vorrei porre la seguente questione.
//********prg1**********//
#include <iostream.h>
#include <typeinfo>
class Base{
};
class Derived1: public Base{
 //
};
class Derived2: public Base{
 //
};
void main()
{
 Base* pb;
 Derived1 d1;
 Derived2 d2;
 pb = &d1;
 cout << "pb punta ad un oggetto di tipo:";
 cout << typeid(*pb).name() << endl;
 pb = &d2;
 cout << "pb punta ad un oggetto di tipo:";
 cout << typeid(*pb).name() << endl;
}
//***********prg2**********//
#include <iostream.h>
#include <typeinfo>
class Base{
    inline virtual bool foo(){return false;}
};
class Derived1: public Base{
 //
};
class Derived2: public Base{
 //
};
void main()
{
 Base* pb;
 Derived1 d1;
 Derived2 d2;
 pb = &d1;
 cout << "pb punta ad un oggetto di tipo:";
 cout << typeid(*pb).name() << endl;
 pb = &d2;
 cout << "pb punta ad un oggetto di tipo:";
 cout << typeid(*pb).name() << endl;
}
Facendo girare i due prg, nel primo caso ottengo:
pb punta ad un oggetto di tipo:class Base
pb punta ad un oggetto di tipo:class Base
mentre nel secondo:
pb punta ad un oggetto di tipo:class Derived1
pb punta ad un oggetto di tipo:class Derived2
L'unica differenza tra i due programmi e' che il secondo
definisce una funzione virtual per la classe base.
E' questa una condizione necessaria affinche' RTTI
funzioni correttamente ? Perche' ?
Ciao e grazie.
f.

 funzioni correttamente ? Perche' ?
No, la RTTI funziona comunque e ti dice, appunto, che senza polimorfismo
il tipo contenuto in un puntatore a base č base indipendentemente dal
tipo reale, a differenza di quanto avviene in presenza di almeno un
metodo virtuale.
EMG

Newsgroup: it.comp.lang.c++
Titolo: set e operatori

Ciao a tutti,
e' una domanda banale lo so... ma aiutatemi vi prego. Supponiamo di
avere
struct TAnnotation {
  int x, y;
};
bool operator<(const TAnnotation& a1, const TAnnotation& a2)
{
  return ( (a1.x < a2.x) ||
	   ( (a1.x == a2.x) && (a2.y < a2.y) ) );
}
typedef set<TAnnotation> TAnnotationsSet;
int main()
{
  TAnnotationsSet as1;
  TAnnotation d;
  d.x = 7;  d.y = 9;  as1.insert(d);
  d.x = 4;  d.y = 2;  as1.insert(d);
  d.x = 7;  d.y = 8;  as1.insert(d);
Bene, perche' l'ultimo elemento nn viene inserito nel set? E' come se
ce ne fosse gia' presente uno uguale e per questo nn viene inserito. Ma
come si fa a ridefinire l'operatore di uguaglianza? Cioe' come faccio a
specificare quando per me sono uguali due TAnnotation?
Cioe' voglio che non venga inserito solo se entrambi i campi x e y sono
uguali ai campi x e y di un altro elemento nellínsieme.
Mi aiutate?
Grazie,
Giulio

Perfavore, nn fate caso al mio post precedente. Ho risolto il problema.


hai provato a fare così (codice non testato):
struct TAnnotation {
  int x, y;
};
struct compTAnnotation {
    bool operator()(const TAnnotation& a1, const TAnnotation& a2)
    {
          return ( (a1.x < a2.x) ||
           ( (a1.x == a2.x) && (a2.y < a2.y) ) );
    }
}
typedef set<TAnnotation, compTAnnotation> TAnnotationsSet;
Ciao,
Maurizio

 }
Hai scritto 'a2' anziché 'a1' nel primo operando dell'ultima espressione.
 
Max

 Perfavore, nn fate caso al mio post precedente. Ho risolto il problema.
come ?