mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: [ANN] Borland C++ Compiler 5.6

Salve boys :-)
Non so se vi siete accorti che installando la Enterprise Trial del nuovo
C++Builder 6 (disponibile sul sito Borland o allegata sul CD di varie
riviste, quale Dev. di Maggio 2002) nella directory \bin sono presenti i
tanto famosi file bcc32.exe e ilink32.exe, (versione 5.6 e 5.60
rispettivamente).
Ho copiato i due file nella directory del Borland C++ Compiler 5.5, e la
cosa funziona.
Non ho avuto tempo di fare prove per eventuali miglioramenti sul fonte della
conformità allo standard ISO, ma mi propongo di farlo.
Intanto potreste verificare anche voi.
Saluti.
--
--
Lello Mele
--
HOMEPAGE: 
http://www.lellomele.it
eMAIL   : lellomele@nospam@
libero.it

 Intanto potreste verificare anche voi.
Io mi sono scaricato la demo del C Builder 6 e la sto usando a linea
di comando (funzionerà dopo la scadenza della demo??? mah...)
Ho notato che la libreria standard non è più della RougeWave
ma ha questo copyright (preso da _vector.h)
/*
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Copyright (c) 1996,1997
 * Silicon Graphics Computer Systems, Inc.
 *
 * Copyright (c) 1997
 * Moscow Center for SPARC Technology
 *
 * Copyright (c) 1999
 * Boris Fomitchev
 *
 * This material is provided "as is", with absolutely no warranty expressed
 * or implied. Any use is at your own risk.
 *
 * Permission to use or copy this software for any purpose is hereby granted
 * without fee, provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 *
 */
o simile, o in generale comunque è
 * Copyright (c) 1999
 * Boris Fomitchev
Personalmente usando i valarray mi sono spariti alcuni assurdi
warning del tipo:
"Valarray.h riga xyx condizione sempre vera, codice irraggiungibile"
o cose simili.
Altre differenze non so (nè sarei in grado di valutarle, credo...)
--
Gerolamo

 wrote in message
news:71ZE8.71462$5k4.1...@twister2.libero.it...


 Altre differenze non so (nè sarei in grado di valutarle, credo...)
Probabilmente si tratta dell'STLPort, una delle migliori librerie STL
che si trovino in circolazione. Per maggiori ragguagli prova a
visitare il sito, 
www.stlport.org
.

 Intanto potreste verificare anche voi.
Non esistono informazioni ufficiali, ma la sensazione che si evince dai
newsgroup Borland (e da qualche prova che ho fatto) e' che a parte il
passaggio a STLPort i passi avanti siano molto pochi, e c'e' pure
qualche baco nuovo (prova per esempio a compilare con l'opzione -v un
file fatto cosi:
#include <utility>
using std::make_pair;
)
L'unico fatto nuovo che sulla media/lunga distanza puo' rivelarsi
positivo e' che la Borland ha messo in piedi un sistema per il reporting
di bachi, per il quale pero' e' necessario registrarsi alla loro
community e scaricarsi il client. Nel frattempo si parla insistentemente
di BCB per Linux...
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Seriale in C++ Builder

Salve a tutti,
sto cercando di gestire la seriale utilizzando il C++ Builder.
Sul manuale del Builder (versione 4.00) non ho trovato indicazioni,
così ho scaricato da Internet le librerie TDLPortIO di John Pappas
senza riuscire a installarle correttamente.
Adesso non so piu' cosa fare, avete qualche suggerimento da darmi?
Grazie in anticipo!!
Saluti Linda.

...


Newsgroup: it.comp.lang.c++
Titolo: Linea in basso a tabelle sviluppate con Quick Report

Devo fare delle tabelle in cui ci sono i dati in delle colonne (i campi di
un database) che vengono stampate.
Le righe devono avere le linee solo nei margini laterali e alla fine della
pagina ci deve essere una linea che chiude la tabella.
Il problema mio e' che questa linea orizzontale che chiude la tabella in
basso alla pagina, non riesco a farla!! :-((
O la metto in ogni riga, oppure essa mi viene stampata solo nell'ultima
pagina.
Uso il QuickReport  allegato con il C++ Builder 3.0.
Ringrazio anticipatamente chi mi aiuterą. Grazie!
--
Alessandro Pulvirenti
ale...@cedss.it

La devi mettere in una PageFooterBand (aggiungi una QRBand e assegna alla
property BandType il tipo rbPageFooter: tutto quello che inserisci qua
dentro viene stampato su ogni pagina alla fine della stessa).
--
Byez.
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org
--------------------------------
(-: To "shut down" your system, type "WIN" :-)
(-: Windows VirusScan 1.0 - "Windows found: Remove it? (Y/N)" :-)


Ho utilizzato una soluzione di comodo usando il rbSummary.
Il problema e' che la rbSummary mi permette di mettere la riga finale di
tutta la tabella (quando finiscono i record) e non della singola pagina!
C'e' un detto che dice:
chi si accontenta gode!
un altro che dice:
aiutati che Dio ti aiuta!
Mettendoli insieme e facendo un sistemino, si ottiene la mia soluzione:
Metto una rbSummary per chiudere la tabella alla fine;
Metto una QRShape nella rbPageFooter per chiudermi ogni pagina!
Il problema e' che se l'ultima pagina finisce a metà, avrò una riga in basso
in piu' a fine pagina!
Questo dovrebbe essere un Bug, ma se io dico che e' stata fatta così a
posta! tutto si aggiusta! :-))))))
Se c'e' una soluzione migliore (priva di Bug! ) ringrazio chi me la
comunicherà, altrimenti mi accontento della soluzione di ripiego che ho
trovato!
Grazie e Ciao.
--
Alessandro Pulvirenti
ale...@cedss.it

in piu' a fine pagina!
Falso, imposta la voce LastPageFooter a false tra le Options del QuickReport
e non ti verra' stampata la PageFooterBand nell'ultima pagina.

Newsgroup: it.comp.lang.c++
Titolo: puntatore costante

Scrivendo :
        int ival(4);
        const int *pival  = &ival;
 
in pival definisco costante l'indirizzo di ival. Quindi scrivere :
       *pival = 10;
non dovrebbe essere illegale, perchè io non modifico l'ndirizzo di ival, ma 
solo il suo valore.
E' un bug del compilatore o sono io che ho qualche idea fuori posto?
-- 
Abruzzo SIlvio
goku_...@libero.it
silvi...@aruba.it
Linux Machine 219721
^_____^

 wrote in message
news:SSDd7.13629$2L.5...@news.infostrada.it...


(come scitto) rende costante l'oggetto int
int  * const pival  = &ival;
rende costante il puntatore e il programma compila e funziona.
HTH

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

Ho 10 variabili che possono avere come valore 1 e 0 (credo che si chiamino
bool, non sono sicuro). Come faccio a trovare quante combinazioni
possibili ci sono?
Grazie
-- 
.·" DevarajA "·.
leo...@libero.it
 

 possibili ci sono?
#include <cmath>
double combinazioni( std::pow( 2, 10 ) );
Non ho compilato, ma dovrebbe andare.
In generale,
double Combinazioni( int _valori, int _posizioni ) {
        return std::pow( _valori, _posizioni );
}
Ciao!
-- 
---
*************** | Have you ever retired a human by mystake?
*** Azathot *** |
*************** | To contact me, ask me gently. Thanks.

 }
Non per causare polemiche, ma le variabili che iniziano con un underscore
non sono riservati agli implementatori?
Ciao

 Ciao
Solo se sono definite come globali. Se non siamo nel namespace globale gli
identificatori riservati sono solo quelli che contengono un doppio
underscore oppure che cominciano con un underscore e maiuscola.

 }
_Spero _di _non _lavorare _mai _in _team _con _te.
:-PPP 
-- 
Luc.
Newsgroup: it.comp.lang.c++
Titolo: Stack overflow

Ciao a tutti, sono il solito principiante di turno, arrivato alla pagina 169
(su 650 :-) ) di "Guida al C++" dello Schildt.
Una domandina facile facile: se cerco di dichiarae un array formato da molti
elementi, tipo 1 milione di elementi (float in questo caso), tutto bene se
dichiaro l'array come globale; viceversa se lo dichiaro dentro al main(), il
programma viene compilato correttamente, ma poi in esecuzione si pianta
irrimediabilmente, dando "unknown software exception", se poi accetto di
fare il debug con Visual C++, mi rida' un messaggio di errore "Stack
Overflow".
Mi viene il sospetto che le variabili locali non possano essere piu' grandi
di un certo limite. Possibile? Tenete presente che il problema mi si
presenta sia se compilo con Borland C++ sia con Visual C++.
Grazie. Ciao

 essere piu' grandi di un certo limite. Possibile?
Prova ad allocarlo nello heap (invece che nello stack) usando new (e poi
delete per deallocarlo).
Tommy

 ha scritto nel messaggio
news:beki2q$2jl$1...@sparta.btinternet.com...



sistema operativo ??? cmq heap e stack non sono la testa e la coda dello
stess segmento di memoria ??? anch'io non capisco perche' nell'heap si e
nello stack no visto che tanto stanno nello stesso segmento ...
ah altra domanda curiosa che mi esplode or ora che stiamo parlando di
segmenti ... come si fa' ad usare il data segment ??? solo le globali ci
finiscono dentro ??? se cosi' perche' non avere funzioni di malloc e new che
prima dell'heap (molto pericoloso per gli stack overflow) riempiano in
totale il data segment ??? o questo e' voluto per portabilita' del c/c++ su
diverse architetture che magari non hanno il segmento dati del x86 ???
chiedo questo visto anche i vari problemi di allocamento quando si fanno
programmi particolari che richiedono l'allocamento di molta memoria e che
ormai usano tutti processori che danno possibilita' di indirizzamento
superiore ai 2gb (o feture del so per ovviare a questi inconvenienti)
scusate per queste divagazioni ma e' bello sapere sempre piu'
ciao

 diverse architetture che magari non hanno il segmento dati del x86 ???
L'uso del data segment (posto che questo esista) e' un problema del
compilatore. Tra parentesi la distinzione tra i diversi tipi di
segmenti e' legata ai meccanismi che li gestiscono. Per questo non ha
senso parlare di allocazione dinamica all'interno del data segment, a
meno che non sia implementata esplicitamente nel programma utente:
definisco un array statico gigantesco e scrivo le mie new/delete che
operano li dentro.
 
Ciao,
Nicola

 ha scritto nel messaggio
news:bekuan$fd$1...@news.ngi.it...

Newsgroup: it.comp.lang.c++
Titolo: CodeBlocks

Qualcuno di voi utilizza il compilatore CodeBlocks?

 compilatore
IDE semmai, visto che si basa su gcc.
Enrico

Qualcuno di voi utilizza il compilatore CodeBlocks?
Code::Blocks non č un compilatore, č un ambiente di sviluppo che
integra mingw (quindi uno dei porting di gcc sotto Windows).
Fai la domanda precisa, che ti aspetti? un "sģ"?

 Qualcuno di voi utilizza il compilatore CodeBlocks?
Sì. Non io.
E.

 Fai la domanda precisa, che ti aspetti? un "sì"?
Scusami, la mia domanda era troppo generica. Sto iniziando a studiare il c++ 
con l'ausilio dell'IDE CodeBlocks. Mi sto imbattendo, però in un adifficoltà 
che non riesco a superare. Il libro che ho comprato, quello della deitel & 
Deitel, spiega che è buona
tecnica di programmazione creare un file GradeBook.h che contiene
l'intestazione della classe, poi il file GradeBook.cpp che contiene la
classe vera e prorpia, ma dove sia impossibile visulaiizare i dettagli
impelmentativi. A questo punto creo il mio file main.cpp che continene le 
istruzioni che devono usare la mia classe di prova. Quando compilo il tutto, 
mi vengono fuori una serie di errori. Chiedo a voi, forse perchè devo creare 
un qualche progetto per la classe e poi linkarla al main o cos'altro?
Grazie per la risposta. 

 cos'altro?
L'IDE deve sapere quali sono i file da compilare. Quindi la risposta č 
sě, devi creare un progetto.
E.

 Grazie per la risposta.
Guarda, se non ti fa schifo la risposta, ti rispondo io che sono nuovo
di una o due settimane del c++ come te, ma non nuovo alla
programmazione in genere.
Anch'io sto utilizzando codeblock (ma non so mi rivolgerò anche a
visualstudio).
In pratica devi capire dal codice che hai davanti che tipo di progetto
è.
Di solito i primi esempi sono "console application", se leggi da
qualche parte "cout" o "cin" la tua è sicuramente tale.
Quindi scegli new project, il tipo di progetto e poi aggiungi i due
file che devono far parte del progetto.
Poi francamente credo che sia tutto evidente.
  Giuseppe

A questo punto creo il mio file main.cpp
No, il main.cpp viene generato automaticamente quando crei un progetto
nuovo, quindi:
File -> New -> Project... -> Console Application
Specifica che vuoi un progetto C++, non C, quindi dai un nome al
progetto, seleziona uno dei compilatori che Code::Blocks vede
(solitamente "GNU GCC Compiler") et voilà, sotto la cartella Sources
del tuo progetto avrai main.cpp bello e pronto.

Grazie mille, ora il programmino d'esempio funziona benissimo.
Grazie ancora a quanti hanno perso del tempo a leggere la mia domanda.
Newsgroup: it.comp.lang.c++
Titolo: ComboBox

Inizio a odiarli :-((
Ho questo problema che non riesco a risolvere:
il mio combobox è DropList, cioè si può scegliere solamente ciò che c'è
nella lista.
Io dovrei scrivere nell'EditBox del ComboBox alcune cose all'inizio quando
parte il programma.
Uso la funzione SetDlgItemText();
Questa funzione però non mi scrive ciò che voglio all'inizio perchè il mio
combobox è un DropList.
Se invece cambio proprietà al combo(tipo Dropdown), mi scrive ciò che dico
alla funzione.
Come posso fare??
Avevo pensato di cambiare le proprietà del combobox durante il programma.
mi spiego meglio:
nelle risorse lo setto come DropDown, nel programma scrivo ciò che voglio e
dopo con una funzione(QUALE??) dovrei ricambiare le proprietà (DropList).
Come Faccio??
Un grazie anticipato da
Iov...@freemail.it

 parte il programma.
Non puoi (credo). Devi utilizzare il messaggio CB_ADDSTRING o
CB_INSERTSTRING per inserire nella lista la voce che vuoi vedere
all'inizio.
EMG

...

Ti ringrazio della risposta, ma ho risolto subito dopo aver inviato questa
mail.
Bastava usare la funzione SendDlgItemMessage con CB_GETCURSEL.
PS
Credo che pensando a qualcos'altro le risposte arrivino da sole... a volta!!
Ti ringrazio ancora.

Newsgroup: it.comp.lang.c++
Titolo: Per prendere i msec in C

Sapete dove posso trovare un programmino Assembler che mi prende i tempi
con la precisione al msec?
Scusate ma non sono un esperto di Assembler.
Grazie,
Davide

...

Dipende anche da quello che vuoi fare tu. Una funzione che "aspetta" x
millisecondi? Fare in modo che ogni x millisecondi venga chiamato il tuo
codice? Perchè nel primo caso hai bisogno di una routine in asm mentre nel
secondo ti basta (in modalità reale) riprogrammare il PIT.
Ciao, Giuseppe

Allora, il mio problema e' che devo prendere quanto tempo passa fra le
pressioni successive di dei tasti
della tastiera con la precisione al msec.
Davide





Newsgroup: it.comp.lang.c++
Titolo: Creare Applicazioni Windows con...

... Borland C++ Compiler 5.5, dove posso trovare info su internet ???
O che libri posso leggere ???
Aiutatemiiiiii

Credo che con il compilatore nudo e crudo puoi al massimo usare le API
Windows (e non sono sicuro nemmeno di questo). Altrimenti ti ci vuole
l'intero C++ Builder.
Ciao,
Nicola

 Windows (e non sono sicuro nemmeno di questo).
Si, io personalmente ho utilizzato la CopyFileA() e la GetLastError()
con il BCC55 nudo e crudo. Basta mettere #include <windows.h>.
EMG

Sai se c'è qualche libro in merito che spiega come fare (anche online)???
Newsgroup: it.comp.lang.c++
Titolo: Domandina al volo

Qualcuno mi sa dire perchč muore prematuro?
Grazie
#include<iostream.h>
#include<fstream.h>
void main()
{char a,b;
ifstream fi("sorg.txt");
ofstream fo("dest.txt");
if(fi.bad()) {cerr<<"Errore apertura file"; exit(-1);}
if(fo.bad()) {cerr<<"Errore apertura file"; exit(-1);}
while(!fi.eof)
       {
        fi.get(a);
        if(a!='/') fo.put(a);
        else
            {
            fi.get(b);
            if(b= ='/')
                {
                 while(!fi.get(b)= ='\n') ; fo.put('\n');}
             else fo.put('/');
     }
}
}

"Cianfrino" ha scritto
: Qualcuno mi sa dire perchč muore prematuro?
: Grazie
:
: #include<iostream.h>
: #include<fstream.h>
: void main()
Qui e` meglio
 int main()
: {char a,b;
: ifstream fi("sorg.txt");
: ofstream fo("dest.txt");
: if(fi.bad()) {cerr<<"Errore apertura file"; exit(-1);}
: if(fo.bad()) {cerr<<"Errore apertura file"; exit(-1);}
: while(!fi.eof)
Io sostituirei la linea precedente con:
  while( !fi.eof() )
:        {
:         fi.get(a);
:         if(a!='/') fo.put(a);
:         else
:             {
:             fi.get(b);
:             if(b= ='/')
:                 {
:                  while(!fi.get(b)= ='\n') ; fo.put('\n');}
:              else fo.put('/');
E qui dipende da cosa vuoi fare, ma mi sembra che sia meglio
               else {
                 fo.put('/');
                 fo.put( b );
               }
Chissa` mai che non ci sia qualche divisione...
:      }
: }
: }
Ah.. la morte prematura era dovuta solo al !fi.eof
Negavi l'indirizzo di una funzione, e si puo` fare
solo che vale falso.
ciao
Massimo

 : Qualcuno mi sa dire perchè
[...]

Newsgroup: it.comp.lang.c++
Titolo: programmi di installazione?

Conoscete un semplice programma di installazione, freeware e configurabile?
Spero di non essere OT. Grazie comunque a chi vorrà rispondermi!
Michele


Io ne ho fatto uno che funziona sotto DOS e sotto Win9x (penso anche NT
...  pero' non ricordo se l'ho provato).
Ti permette di creare dischi di installazione (di qualsiasi cosa) in
modo semplice e piuttosto rapido, supporta i nomi di files lunghi ed e'
freeware.
Si chiama "Install" e lo trovi nella sezione Download di questo sito:
 
http://uda.itgo.com
***
Cmq temo che qui sia OT tutto questo ... forse e' meglio se chiedi su un
NG piu' "dedicato".
Ciao, U D A.
-- 
**********************************************************************
UDA'Software
mailto:
Andrea....@uda.itgo.com
http://uda.itgo.com
Newsgroup: it.comp.lang.c++
Titolo: copiare file...

Ciao a tutti,
ho un problema...
se uso questa funzione per copiare un file mi mette due volte l'ultima
riga...
come mai?
void copyfile(FILE *IN,FILE *OUT)
{
char linea[100];
while(!feof(IN))
{
fgets(linea,100,IN);
fputs(linea,OUT);
};
}
In aggiunta sapete se esiste una funzione per copiare direttamente due file?
Grazie 1000.

"Emanuele Baglini" ha scritto
: Ciao a tutti,
: ho un problema...
: se uso questa funzione per copiare un file mi mette due volte l'ultima
: riga...
: come mai?
: void copyfile(FILE *IN,FILE *OUT)
:
: {
:
: char linea[100];
:
: while(!feof(IN))
:
: {
:
: fgets(linea,100,IN);
:
prova ad aggiungere questa riga:
if ( feof( IN ) ) break;
: fputs(linea,OUT);
:
: };
:
: }
:
ciao
Massimo

 }
scrivi il loop in questa maniera
 char linea[100];
do     {
     fgets(linea, 100, IN);
     fputs(linea,OUT);
 }  while(!feof(IN)) ;

  }  while(!feof(IN)) ;
se il file IN comingia al EOF, questo codice a il stesso problema.
se vuoi copiare, la cosa piu veloce e da usare la systema operativa.
il modo secondo e qual cosa cosi:
	char buffer[ 1<<14 ];
	int	i;
	while ( (i = fread(buffer, 1, sizeof(buffer), IN ) ) ) {
		int k = 0;
		while ( k < i ) {
			int j = fwrite( buffer + k, 1, i - k, OUT );
			if ( !j ) {
				return CODICE_ERRORE;
			}
			k += j;
		}
	}
	if ( ferror( IN ) ) {
		return CODICE_ERRORE;
	}

 Grazie 1000.
prego
ciao
Alex

Newsgroup: it.comp.lang.c++
Titolo: [PROMO] Hostingforum.it Offre Dominio Gratuito

Salve a tutti,
Vorrei invitarVi a visitare il nuovo forum di discussione
www.hostingforum.it
Un nuovo canale per le discussioni sull'hosting, server, VPS HTML
Connessioni ADSL VOIP etc.
Potete inserire gratuitamente le vostre pubblicità di hosting, server oppure
altri servizi.
Inoltre per animare il forum, lo staff di hostingforum offre la
registrazione di un nome a dominio gratuito per gli utenti che postano 40
messaggi entro il
31/12/2005
Grazie a tutti per la vostra attenzione.

 
Farsi pubblicità in questo modo su newsgroup (neanche in tema) è proprio 
una schifezza, vi auguro di fallire nel più breve tempo possibile.
Newsgroup: it.comp.lang.c++
Titolo: sizeof class

le dimensioni di un oggetto possono essere calcolate dai membri
privati della classe più eventuali metodi dichiarati virtual ed altri
fattori propri del concetto di oo, ad esempio se è una classe derivata
o base.
Se invece i membri sono dichiarati pubblici, ad esempio:
class A {
     public:
              int x;
              unsigned long y;
              char foo(void) { return w }
              virtual void bar(int _x);
     private:
              char w;
              short z;
              static unsigned long k;
};
solo membri privati :
1 byte (char)
2 byte (short)
1 byte (perchè è presente un metodo virtual)
Nel calcolo ho omesso i due membri dichiarati public. Premetto che
sono a conoscenza che dichiarare pubbliche delle variabili in una
classe non avrebbe molto senso in OOP, vorrei sapere se devo comunque
includere tutti i membri o solo i membri privati per calcolare
l'esatta dimensione dell'oggetto.
grazie

mente ha scritto:

Non ha importanza se i membri sono pubblici o privati.
Ha invece importanza se sono statici o no.
Se la classe o una sua superclasse contiene almeno un metodo virtuale, 
allora ogni oggetto di tale classe ha in aggiunta un puntatore.
In aggiunta le variabili vengono normalmente allineate ad un indirizzo 
pari ad un multiplo della dimensione del dato stesso.
Pertanto nel tuo caso si potrebbe avere (dipende dal compilatore):
int x: 4 byte
unsigned long y: 4 byte
char foo(void): 0 byte
virtual void bar(int _x): 0 byte
char w: 1 byte
short z: 1 byte di allineamento + 2 byte
static unsigned long k: 0 byte
puntatore a vtable: 4 byte
Totale: 16 byte
Verifica chiamando sizeof in un programma di prova.
-- 
Carlo Milanesi
http://digilander.libero.it/carlmila


wrote:

ok grazie

Newsgroup: it.comp.lang.c++
Titolo: SOFTWARE C++

 ha 
  scritto nel messaggio 
news:000801bff3e2$34027d00$938a1597@cobrakiller
...


Ho pensato di imparare il C++, e vorrei sapere dove è 
  reperibile il programma C++, naturalmente sulla rete, e naturalmente 
  freeware.Grazie.





Leggi le faq!
Paolo

Impara innanzi tutto a postare correttamente sul NG... 8-DDD
Luc.
On 22 Jul 2000 15:40:18 +0200, 
cobraki...@libero.it

Newsgroup: it.comp.lang.c++
Titolo: ordine dei ditruttori

Salve a tutti, mi chiedevo:
perché l'ordine di invocazione dei distruttori nel caso di classi derivate è
opposto a quello dei costruttori? Logicamente è giusto visto che le classi
derivate aggiungono qualcosa in più rispetto alle classi base e nella
distruzione bisogna cominciare dal "guscio più esterno", ma se partissi da
quello interno cosa potrebbe comportare, qualcuno sa farmi un esempio dove
cominciare la distruzione dalla classe base può comportare problemi.
Grazie mille
Salutoni
Nikola

 wrote in message
news:cHPMb.104069$_P.38...@news4.tin.it...

Personalmente non vedo che tipi di problemi si possono annidare nei
distruttori, e nell'ordine
in cui essi vengono invocati... l'importante è che ogni distruttore elimini
quel che è di propria competenza..
Un esempio: in una ipotetica classe di stream ed una classe derivata
socketstream il distruttore della classe base
distruggerà lo stream chiudendo l'handle associato a questo dato stream,
mentre una classe socketstream potrebbe avere
la necessità di effettuare qualche operazione in più sull'handle, ma sarebbe
invalidato visto l'ordine con cui vengono invocati
i distruttori.. una buona soluzione però sarebbe invocare un metodo close()
virtual in modo da invocare la copia corretta...
notte
antonio

...

Se tu partissi da quello piu' interno, ovvero da quello della classe
base, il distruttore della classe derivata non potrebbe piu' far conto
sulla consistenza della parte di oggetto propria della classe base.
Pensa di avere:
class Base
{
  public:
    // Costruttore, ecc.
    ~Base() { delete p; }
  protected:
    int * p;
};
class Derivata : public Base
{
  public:
    // Costruttore, ecc.
    ~Derivata() { if ( *p == 7 ) std::cout << "Sette!\n"; }
};
Inverti l'ordine dei distruttori e... Bum!
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Cerco programmatori c++

Ciao, prima di tutti alcune premesse.
Il progetto che vogliamo realizzare e' sicurmente immenso, quindi non posso
promettere nulla, ma l'idea ce l'abbiamo, siamo per questo progetto
all'incirca una decina tutti appasionati di UO e Rpg.
Comunque quello che sto cercando(astenersi perditempo)sono programmatori
tosti conoscenza per ora 3D, stiamo cercando di realizzare usando un motore
3D un gioco a livello di uo.
Quindi skills oggetti da craftare interazione col mondo circostante e
sopratutto un mondo multi player e non di solo 8 pg online.
Se avete una buona conoscenza di programmazione 3D
C++ e vi e' piaciuto UO allora scrivetemi un email
a 
rear...@hotmail.com
Abbiamo bisogno urgente, inoltre ho gia un hosting pronto ad ospitarci.
Per ora non ci sono profitti ma in futuro chissa.
Quindi cosa aspetti se sei un programmatore esperto scrivimi e vorrei sapere
cosa hai realizzato.
Ho diversi 3d engine open source , poi decideremo quale pensiate sia meglio.

 ha scritto nel messaggio
news:Q%7a8.62684$3J1.1...@news2.tin.it...


Newsgroup: it.comp.lang.c++
Titolo: partial specialization

Ciao
Ho bisogno di un compilatore (possibilmente sotto Windows o cgiwin o linux)
che sia in grado di compilare tutte le specializzazioni sotto riportate.
Ho provato Borland 5.51, g++ 2.95 3.5, Comeau (online 4.03 beta) ma tutti si
lamentano dell'ultima specializzazione.
template <class T> struct A {};
template <> struct A<int> {};
template <class T> struct A< A<T> > {};
template <class T> struct A<T*> : private A<void *> {};
grazie
Alex

Ho notato che la specializzazione parziale di templates con 2 o piu'
parametri  compila correttamente sotto Borland C++ 5.51.
Sembra che la limitazione sia per templates con 1 solo parametro.
Cosa dice lo standard? E' un mio errore?
ciao e grazie
Alex
template <class T, class U> class B{};
template <class U> class B<int, U> {};
template <class T, class U> class B<T*,U*>: private B<T,void*> {};
template <class T, class U> class B<T*,U*>: private B<void*,void*> {}; /*
questo non compila */
template <class T, class U, class Z> class C{};
template <class T, class U, class Z> class C<T*,U*, Z*>: private
C<void*,void*,void*> {}; /* e questo nemmeno */

 writes:

Il gcc 3.0.4 all'ultima riga dice:
  prova.cc:4: base class `A<void*>' has incomplete type
e secondo me ha ragione. 
A<void*> e' del tipo A<T*> e quindi a sua volta deriva da A<void*>.
Aggiungendo prima dell'ultima specializzazione
  template <> struct A<void*> {};
il gcc compila senza errori.
        Mauro

 wrote in message
news:874rhqj...@localhost.localdomain...

Newsgroup: it.comp.lang.c++
Titolo: Chiamare un file EXE esterno

Ciao a tutti,
qualcuno di voi sa dirmi come chiamare un file eseguibile esterno da un mio
programma scritto in VC++?
Io ho usato la system, ma mi apre una finestra dos, anche se il programma
chiamato è un'applicazione windows. Il programma si apre correttamente, ma
la finestra nera dos rimane sotto!
Se il comando è per forza system, allora sapete dirmi come evitare che apra
la schermata dos?
Ciao e grazie
Sergio

 wrote in message
news:97atil$lrs$1...@pegasus.tiscalinet.it...


Grazie mille,
sono riuscito ad usare il tuo codice ed ottengo ciò che voglio, cioè non
vedo la finestra
nera del DOS, ma il problema è questo adesso:
la system che usavo prima non adava avanti nel programma finchè l'eseguibile
chiamato non era terminato.
Se chiamo ad esempio pippo.exe con la  createprocess, parte l'esecuzione ma
intanto
va avanti nel codice del programma principale. Io devo trovare il modo di
aspettare che pippo.exe sia chiuso per poter usare dei file che pippo
produce. Se mi va avanti prima
succede che pippo ancora non è riuscito a creare i file.
Se c'è una funzione che fa aspettare il programma chiamante finchè pippo.exe
è terminato, fammi sapere.
Grazie comunque.
Sergio
"Bob Rock" <there_is_no_business_like_showbusiness@_NO_SPAM_hotmail.com> ha
scritto nel messaggio news:97blek$h8r$1...@taliesin.netcom.net.uk...


 wrote in message
news:97brpv$1h7$2...@pegasus.tiscalinet.it...


E' perfetto!
Ti ringrazio veramente tanto.
Sergio
"Bob Rock" <there_is_no_business_like_showbusiness@_NO_SPAM_hotmail.com> ha
scritto nel messaggio news:97c258$rqr$1...@taliesin.netcom.net.uk...


Newsgroup: it.comp.lang.c++
Titolo: Intercettare interrupt


Web: 
http://members.it.tripod.de/~mrighetti

 Mi va bene tutto, purche` gratis.
Prova questo:
http://www.einev.ch/references/mondada/mmp/
e' per NT ed e' free.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |
Newsgroup: it.comp.lang.c++
Titolo: RTTI

Salve,
vorrei un parere sugli idiomi di programmazione per il RTTI.
Dunque, puo' capitare di avere bisogno di una RTTI. Nel "multiple
dispatching", o perche' si usa una gerarchia di classi non virtuali
fornita da una altro programmatore, o per altri motivi: un oggetto puo'
essere visto contemporanemente con due o piu' interfacce differenti.
Viene affermato, per esempio in "thinking in C++", l'ottimo libro
on-line pluricitato in questo newsgroup, che "il top" di eleganza ed
efficienza lo si raggiunge con il pattern "visitor", che rispetto
all'uso del dynamic_cast<type> ha il pregio di essere completamente CTTI
invece che RTTI.
Programmando "sul serio" un progetto piu' complesso di quello del
"trashcan" esemplificato in "thinking in C++" mi sono convinto che il
pattern visitor dovrebbe essere usato esclusivamente per "virtualizzare"
una gerarchia statica, e non per realizzare la CTTI la' dove sono
presenti funzioni virtuali. I motivi sono i seguenti:
1) supponiamo di avere una base class B, 100 class derivate D e una
classe visitor_B che implementa il pattern visitor su B. Assumiamo che
l'utente di una libreria voglia e debba aggiungere le sue proprie N
classi derivando la classe B, con N molto grande. Come conseguenza:
a) La classe visitatore viene ad avere un numero enorme di funzioni
membro, tutte simili tra loro
b) l'implementatore della nuova classe deve ricordarsi di modificare il
codice della classe visitor_B.
Cioe': cambiamento di codice in parti non originariamente scritte
dall'utente (eventualmente non disponibili!).
2) Se l'utente della libreria esegue a sua volta una derivazione
virtuale DD da D deve ricordarsi di mettere anche una funzione
select(DD*), oltre che tutte le funzioni select(DD_implementazione*).
In entrambi i casi il programmatore deve scrivere codice che gli e'
sostanzialmente gia' dato dal RTTI di default del c++ senza ottenere un
particolare beneficio, il tutto per sottostare alla regola: "Thou shall
not detect type of data at run time..."
Qual'e', secondo voi, la vera utilita' di non effettuare il controllo
RTTI ma di applicare un pattern che permetta il controllo CTTI?
Salve a tutti e grazie per le risposte!
Guido

 RTTI ma di applicare un pattern che permetta il controllo CTTI?
L'utilita` e` enorme, perche` la sicurezza dei tipi e` preziosa, e
solo CTTI la assicura veramente.  Ma, in situazioni di elevato
dinamismo (tipo l'uso di DLL modificate e ricaricate al volo), non
e` chiaramente praticabile, e in altre ha un prezzo che si puo`
giudicare comunque troppo elevato.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Aiuto x Testi c++

Ciao a tutti!
sono nuovo del NG, ma apprezzo moltissimo la competenza che dimostrrate
nelle vostre risposte...
ora il problema:
1) io ho conoscenza soprattutto di applicativi di grafica e di sistemi
operativi (linux/ NT), e ho provato a cercare lavoro come sistemista jr o
web designer ma recentemente mi è stato consigliato durante un colloquio di
approfondire anche la conoscenza della programmazione orientata agli
oggetti; confesso di non sapere nulla di programmazione tranne qualcosina di
Html; come prima cosa ho pensato dui studiare il c++, che ritengo il
linguaggio + importante. Sto sbagliando? mi consigliate qualche altro
linguaggio da cui cominciare ( tipo Visual Basic)?
2) essendomi deciso ad avvicinarmi al c++ ho dato una vista ai manuali delle
librerie, e sono indeciso tra i seguenti:
Il linguaggio C++ - II edizione  di   Bjarne Stroustrup  della Addison
C++ - Corso di programmazione Terza Edizione
Stanley B. Lippman, Josée Lajoie    della Addison
Deitel & Deitel  C++ Fondamenti di Programmazione della Apogeo
Ho gia capito che nel NG c'è una forte ammirazione per il testo di Lippman
ma vorrei sapere se lo consigliate anche a me che sono un totale analfabeta
in programmazione...(è così e quindi lo dico)
vi ringrazio per i consigli che arriveranno,
a presto

 in programmazione...(è così e quindi lo dico)
Proprio per questo credo sia un po' troppo impegnativo per chi e' a totale
digiuno.
Alex

 
se te la cavi nella lettura di testi in lingua inglese ti consiglio il 
libro online di Bruce Eckel, cerca con 
http://www.google.com
 con i termini 
"Brucke Eckel Thinking in C++", lo troverai...
e' un libro molto impegnativo, ma non tira la corda per nulla, e' veramente 
consapevole il tipo che l'ha scritto...
bye
Lore

Newsgroup: it.comp.lang.c++
Titolo: Manule di stile

Qualcuno di voi a letto "c++ Manula di stile" di Carlo Pescio edito da
infomedia?
lo consigliereste a un appassionato di programmazione?
Esitono altri libri che trattino gli stessi argomenti ,leggibilità, eleganza
,portabilità,ecc del codice?
Grazie.
 Marco

lo consigliereste a un appassionato di programmazione?
E` un testo molto valido da cui si impara molto... anche a riflettere!
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

lo consigliereste a un appassionato di programmazione?
Si, non e' per niente male.
--
 (o-  | c:\> win2000patch001.exe
 //\  | This Microsoft(c) patch fix all bugs present. All rigth reserved.
 V_/_ | Insert Linux boot disk to continue ... loading kernel ...
http://pinguin.linuxbox.com
 r.salmaso(at)
flashnet.it
Newsgroup: it.comp.lang.c++
Titolo: Stack design

In un programma ho bisogno di uno stack sostanzialmente eterogeneo,
per poter ficcarci dentro oggetti di diversi tipi di dato.
In effetti č lo stack di una vm č stack, per l'appunto. 
Il numero di tipi di oggetto diversi che ci finiranno dentro č piuttosto
limitato. Una lista non esaustiva potrebbe essere un Number templatico
sul tipo di numero, un qualche tipo di stringa, variabile, riferimento,
roba cosě.
Questo mi portava ad escludere boost::any, poichč non ho bisogno di
metterci oggetti totalmente generici.
Č perfettamente accettabile che tutti questi ereditino da un unico tipo,
virtuale o meno. Mi chiedevo se questa sia o meno la strada migliore.
Specie perchč poi dovrei utilizzare il polimorfismo dinamico per
risolvere alcuni metodi di questi oggetti a runtime quando li cavo dallo
stack per manipolarli.
D'altra parte, tenendo conto che sono sveglio da sta mattina presto, ho
un buffo errore su uno std::stack che non si fa templatizzare con const
item&. E l'errore che ne deriva ha anche senso, vedendo
l'implementazione e tutto. Solo che io ricordo che si poteva, mi chiedo
quali e quanti ricordi ciccati ho nel *mio* stack. :)
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.

 item&.
Rileggendolo, mi reinsulto.


Newsgroup: it.comp.lang.c++
Titolo: Trovaro un Testo introduttivo al C++

Ho comprato molti testi del C++, ma nessuno di questi è una adatto ad una
buona introduzione generale, potreste indicarmene qualcuno in Italiano?
Volendo, anche testi universitari vanno bene.
Grazie.

 Ho comprato molti testi del C++, ma nessuno di questi č una adatto ad una



Sono un novellino ma ti posso dire che la serie della McGraw-Hill
sono molto seri e ben strutturati ed in particolare "Chi ha paura del C++?".
Spero di esserti stato utile e per scambi di esperienza:
mailto: 
pablo...@tiscalinet.it
Ciao a tutti,Pablo.

...

Newsgroup: it.comp.lang.c++
Titolo: Inizializzare ed editare una CEdit

Salve a tutti,
mi sto imbattendo in un piccolo problemino che spero insieme a voi possa
risolvere.
Premetto che la mia applicazione dovra' girare su un computer senza
mouse, e con una tastiera ridotta.
Quando premo un carattere numerico (OnNum1()), devo inizializzare una
CEdit (m_NumDlg   -  IDC_NUMDLG) in una mia dialog (classe CNumDialog)
con il numero selezionato e fare un Set Focus su tale controllo.
void CTest2View::OnNum1()
{
 CString Text;
 CPaintDC pDC(this);
  CNumDialog pNumDlg;
  pNumDlg.m_NumDlg=1.0;
  pNumDlg.m_NumDlgMin=1;
  pNumDlg.m_NumDlgMax=n_Tracks[n_CurPlan];
  if(pNumDlg.DoModal()==IDOK)
  {
      pAreaWnd->SelTraccia((int)(pNumDlg.m_NumDlg)-1);
    Text.Format("Traccia %d/%d       ",n_Track+1,n_Tracks[n_CurPlan]);
    pDC.TextOut(m_TextXPos,m_TextYPos,Text);
  }
 }
}
BOOL CNumDialog::OnInitDialog()
{
 CDialog::OnInitDialog();
 GetDlgItem(IDC_NUMEDIT)->SetFocus();
 return FALSE;  // return TRUE unless you set the focus to a control
               // EXCEPTION: OCX Property Pages should return FALSE
}
Il problema e' che il cursore si posiziona alla posizione zero del
CEdit; e quindi per completare il numero che desidero inserire dovrei
spostarmi a destra con il cursore, e questo mi creerebbe dei problemi.
La domanda quindi e' questa:
come faccio a posizionare il cursore alla fine della stringa di
inizializzazione della mia CEdit?
Se qualcuno ha qualche suggerimento e' benvenuto.
Grazie in anticipo
Alessandro Agostini
IROE - CNR
Firenze

inizializzazione della mia CEdit?
puoi usare la SetSel() specificando in entrambi i parametri
(startChar,endChar) la lunghezza della stringa o la posizione in cui
vuoi spostare il cursore.
Gianpaolo Bottin
- Live Long and Prosper -

Newsgroup: it.comp.lang.c++
Titolo: Memoria allocata e deallocata

Salve a tutti, dopo innumerevoli tentativi ho finalmente costruito un
template per un generico Balanced Tree.
Ho un file di testo da cui leggo le chiavi, le aggiungo all'albero, le
rileggo dallo stesso file di testo (o da una copia con ordine diverso
dal primo file) e le elimino.
Mi trovo (al momento) sotto Windows con g++ 3.4.2.
Ho fatto questo semplice test: ciclicamente (4 volte) attendo la
pressione di un tasto, leggo il file e popolo il btree, attendo
un'altra volta la pressione del tasto e quindi elimino le chiavi.
Con il task manager aperto visualizzo quanto segue:
All'apertura: Utilizzo memoria=952 KB, Dimensione m. virtuale=224 KB
Lettura 1: Utilizzo memoria=6.724 KB, Dimensione m. virtuale=5.904 KB
Eliminazione 1: Utilizzo memoria=2.856 KB, Dimensione m.
virtuale=2.028 KB
Lettura 2: Utilizzo memoria=6.752 KB, Dimensione m. virtuale=5.924 KB
Eliminazione 2: Utilizzo memoria=4.762 KB, Dimensione m.
virtuale=3.940 KB
Lettura 3: Utilizzo memoria=6.748 KB, Dimensione m. virtuale=5.924 KB
Eliminazione 3: Utilizzo memoria=2.916 KB, Dimensione m.
virtuale=2.088 KB
Lettura 4: Utilizzo memoria=6.752 KB, Dimensione m. virtuale=5.924 KB
Eliminazione 4: Utilizzo memoria=4.876 KB, Dimensione m.
virtuale=4.048 KB
E' normale ke la memoria allocata e deallocata non mi porti mai a
risultati simili nel task manager?


Newsgroup: it.comp.lang.c++
Titolo: Grafica in C++

Salve a tutti!
Avrei intenzione di fare una sorta di videogame (senza pretese vista la
complessità dell'argomento), e mi stavo chiedendo come posso fare per creare
dei semplici disegni su schermo.
P.S.
Non sono un programmatore esperto di C++, percui se sarete così gentili da
darmi spiegazioni non molto complesse ve ne sarei grato...

 dei semplici disegni su schermo.
Il C++ standard, argomento di cui si occupa questo NG, non prevede grafica.
Ti conviene chiedere su NG più appropriati, magari che si occupano di
implementazioni particolari del linguaggio.
Ciao, sav :-)

 Non sono un programmatore esperto di C++
Mai pensato ad un altro linguaggio più consono alle tue 
capacità/esigenze?
-- 
Luc.

 ha scritto nel messaggio
news:nDOta.49848$3M4.1...@news1.tin.it...

Su questo NG l'argomento è OT in quanto il C++ standard non prevede grafica.
Prova a scrivere su it.comp.programmare.win32 se sviluppi in windows,
specificando esattamente di che tipo di grafica hai bisogno :)
In alternativa puoi provare su it.comp.giochi.sviluppo, ma se non hai
*solide* basi di programmazione ti sconsiglio di provare ;)
Saluti
--
NinjaCross
 
www.ninjacross.it
Membro dell'Italian Agile Movement.
www.agilemovement.it
Sconnetti il chip isolineare per contattarmi
ninjacross_CH...@yahoo.it

Newsgroup: it.comp.lang.c++
Titolo: Tutorial Microsoft Visual C++

Buondģ newz!
Please, sapete da dove posso scaricare un "buon" tutorial per
l'ambiente Microsoft di C++?? Inglese o italiano non importa,
basta che parta dalla programmazione in windoz, non in c++
modalitą console stile anni del ms-dos...
Thanks tanto..
August.

 ha scritto nel messaggio
news:aarmgj$db7ac$1...@ID-94218.news.dfncis.de...


 ha scritto nel messaggio
news:aarqs1$ibt$1...@pegasus.tiscalinet.it...


Prova a provare su questo sito nel reparto C++
c'è anche un reparto frutta e verdura?
--
Lawrence Oluyede
rhy...@myself.com

Newsgroup: it.comp.lang.c++
Titolo: progetti in MFC

ciao io devo fare un progetto che consiste in un gioco ( player + editor )
in c++ con la libreria MFC .
il tutto mi gira in Microsoft .Net 
queste sono le specifiche del professore.
avete gia fatto dei progetti ? 
che consigli mi date ? 
grazie
---------------------------------------------------------------------------
Messaggio inviato attraverso 
http://www.trucchiperpc.it
 - sezione newsgroup

 che consigli mi date ?
che hai cannato completamente il newsgroup a cui chiedere ...
per suggerimenti sui giochi chiedi su it.comp.giochi.sviluppo
per consigli sui progetti .net e mfc chiedi su it.comp.programmare.win32
ciao
Newsgroup: it.comp.lang.c++
Titolo: Const e costruttori

Salve
	ho il seguente problema con un programma in C++.
Sto realizzando un simulatore di un hd e ho creato una classe che ne
contiene i parametri fondamentali, in particolare:
	n_cyl:   numero dei cilindri
	n_track: n. delle tracce
	n_sect:  n. dei settori
Secondo me la soluzione ideale per memorizzare questi parametri sarebbe
di definire queste var. come const, in questo modo risulterebbero
inmodificali dopo la loro inizializzazione, pur essendo comunque
leggibili.
Il problema e' che i parametri che descrivono un hd sono memorizzati su
un apposito file (in questo modo il sim. puo' simulare qualsiasi hd) e
quindi non posso inizializzare le var. const perche' i valori li conosco
una volta letto il file.
Non e' possibile in qualche modo inizializzare le const dentro il
costruttore della classe? (io non ci riesco). In fondo lo scopo del
costruttore e' proprio quello di definire i valori iniziali delle var.
menbro di una classe.
Grazie  a tutti
	Strazzari Alessandro

 menbro di una classe.
I dati membro di tipo const vanno inizializzati nella lista di inizializza-
zione del costruttore della classe:
class C {
public:
	C(int i) : _j(i) { ... }
private:
	const int _j ;
};
In alternativa potresti, ad esempio, non dichiarare i dati membro come
const e renderli leggibili solo attraverso funzioni membro di tipo const,
che non possono alterare lo stato (cioe' i dati membro) della classe. 
Dovresti fare attenzione pero' anche a eventuali funzioni o classi friend.
E' comunque buona norma inizializzare i dati membro di una classe sempre
nella lista di inizializzazione dei suoi costruttori; nel caso di dati
const, poi, questo e' anche l'unico modo possibile.
+-------------------+-------------------------------------------+
| Gianmario IAMONI  | phone: +39-2-4388-9064 (work)             |
| software engineer |        +39-322-53621   (home)             |
|                   | fax:   +39-2-4388-7241                    |
| Italtel spa       | email:  
iam...@ic2wh33.settimo.italtel.it
 |
+-------------------+-------------------------------------------+
Newsgroup: it.comp.lang.c++
Titolo: iterator e namespace

ciao a tutti.
c' e` qualcosa che mi sfugge nel concetto di namespace e non me ne 
capacito. mi fareste un ripassino? ditemi dove sbaglio.
le classi della STL risiedono nel namespace stl, dunque per usarle vanno 
qualificate anteponendo il nome del namespace, per es. std::vector. per 
evitare di scrivere tutte le volte stl:: si puo` piazzare nel codice 
using std::vector, questo istruisce il compilatore che i vector ai quali 
mi riferisco sono, di default, quelli del namespace std. ok?
il discorso mi si inceppa con gli iterator, infatti
#include <vector>
using std::vector;
int main()
{
    	vector<int>    	    	    	v;
	vector<int>::iterator		i;
}
non compila. ottengo:
error C2653: 'vector<int,class std::allocator<int> >' : is not a class or 
namespace name.
ma come?! 
dopo vari tentativi ho oscoperto un' ulteriore beffa: tutto va a posto se 
qualifico la seconda dichiarazione con std::, sarebbe a dire
    	std::vector<int>::iterator    i;
giuro che non capisco...
ciao e grazie per l' attenzione.

 or namespace name.
penso sia un bug di VC++: g++ 3 compila perfettamente.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 ma come?!
arisnip
Hai ragione,
penso che sia l'ennesimo baco del VisualC++ 6.0
prova cosi':
#include <vector>
using std::vector;
typedef vector<int> VectInt;
int main()
{
    VectInt v;
    VectInt::iterator i;
    return 0;
 }
mi da' solo un warning:
c:\test\test\stl.cpp(19) : warning C4101: 'i' : unreferenced local variable
ovviamente perche' devo ancora utilizzare l'iteratore.
Chi conferma che e' un baco (il millesimo...) del VisualC++ ?
Maurus

 Chi conferma che e' un baco (il millesimo...) del VisualC++ ?
uhmm... in definitiva non saprei, perche` questo:
namespace paperopoli {
 
	class paperino
	{
		public:
			void p () {};
			class quiquoqua
			{
				public:
					void q () {};
			};
	};
}
using paperopoli::paperino;
int main ()
{
	paperino				P;
	paperino::quiquoqua		Q;
}		
compila. io penso (ma non sono sicuro, perche` di stl ci capisco pochino) 
che fra paperopoli, paperino e quiquoqua sussistano gli stessi rapporti che 
fra std, vector e iterator. ma evidentemente no, senno` non compilerebbe. 
che il problema sia che vector e` un template? che sia un difetto nell' 
implementazione di stl? mah!, penso che nel dubbio passero` notti insonni 
;)
ciao ciao
Newsgroup: it.comp.lang.c++
Titolo: "->" e "."

Ciao,
quale è la differenza nell'uso dell'operatore freccia e del punto
nell'uso di puntatori o funzioni?
ho cercato sul libro che uso per il C++ ma non è stato molto chiaro
grazie
Gianluca

 ha scritto nel messaggio
news:QHL98.56160$nI1.1...@twister1.libero.it...

Ti faccio un esempio:
typedef struct dati{
                        int value;
                        ...
};
int main()
{
dati d, *pt;
int result
//queste due linee fanno esattamente la stessa cosa
           d.value = 10;
            pt->value = 10;
            result = d.value + pt->value;
//result è uguale a 20
return 0;
}
Detto brevemente, tramite il punto accedi direttamente ai membri della
struttura d, mentre tramite la freccia accedi ai membri di una struttura
puntata dal puntatore pt.
Vale anche per le classi.
Ovviamente non è solo questo, ma è tutto quello che so :-)
Ciao
Libra

 file://result è uguale a 20


Newsgroup: it.comp.lang.c++
Titolo: Borland C++ e database.

Sto scrivendo un programma di catalogazione videocassette utilizzando il
Borland C++ Builder. Tuttavia, mi servirebbe dare la possibilita'
all'utente di crearsi un nuovo DB in locale. Attualmente per lo sviluppo
il database utilizzato e' stato da me definito con un alias, ma temo che
portando l'applicazione su un'altro PC diverso dal mio questa non funzioni
perche' tenta di aprire un DB il cui path e' relativo al mio HD.
Regards,
******************************************************************************
* Luca Ferraris - mail to: 
ferrar...@educ.di.unito.it
 * * * *
******************************************************************************

La creazione dell'ALIAS serve proprio per svincolare il codice di gestione
dei dati fisici dalla loro posizione. Le tabelle e altri componenti simili
lavorano con l'alias senza conoscere la posizione esatta del dBase. Il
motore  dBase della Borland provvede alla risoluzione del PATH per l'accesso
fisico. Tale struttura serve proprio per evitare il tuo problema.
Se cambi il path dell'alias sulla macchina in cui hai installato
l'applicazione, il tuo programma non se ne accorgerà nemmeno.
Se desideri un codice che ti crei un alias "al volo" basta che chiedi e lo
posto.
inferno