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

Conosco VB e Java vorrei imparare il C++. Visto che Java a preso molto dal
C++ credo che conoscendo la "teoria ad oggetti" del Java non dovrebbe essere
difficilissimo passare al C++, ho il libro "Il linguaggio C++" di Bjarne
Stroustrup (seconda edizione del 1996) credete che vada bene come testo o me
ne consigliate un altro?
Soprattutto mi consigliate di mettermi su C++ o credete che il mercato
richiederà maggiormente C# e Java, considerando anche il fatto che io non
sono laureato e che in molti campi dove si usa il C++ ovviamente
preferiscono avere degli Ingegneri?
Grazie
--
Claudio P.
ICQ: 39052657

 preferiscono avere degli Ingegneri?
Per come stanno le cose, mi sa che per un po' il mercato non chiedera' 
proprio un bel niente. In ogni caso, specie in Italia, Java e C# sono 
molto piu' di moda.
Ciao,
Nicola

 edizione originale) e' datata. Ti conviene conmprare la terza.
Ci sono grossi cambiamenti? soprattutto per iniziare non per particolari
La seconda edizione la ho giŕ, se la terza non č totalmente una rivoluzione
preferirei tenermi la seconda e al limite prendere un altro libro.
Che ne dici?



La seconda edizione e' vecchia essendo del '96 e 6 anni in informatica sono
ere geologiche.
Non ti consiglio pero' di comprare la terza edizione come primo acquisto per
te che devi imparare il C++ da zero.
Stroustrup e' il padre del C++ e non ha uno stile efficace per il primo
insegnamento.
E' un libro che andrebbe studiato dopo che si e' gia' a proprio agio col
C++.
Per cui al solito o ti leggi le FAQ che sono anche sul sito
www.programmazione.it
 insieme a tanti altri consigli, oppure ti scarichi il
libro elettronico di Bruce Eckel  "Thinking in C++" da 
www.bruceeckel.com
 ,
oppure vai ad ordinare l'ultima edizione di "C++ Primers" di Lippman e
Lajoie (mi sembra che sia "Lezioni di C++" il titolo italiano).
Infine ti scarichi l'ambiente di sviluppo completo del DevC++ da
http://www.bloodshed.net/devcpp.html
 per cominciare a compilare qualche
esempio del libro (se lavori sotto Windows, nel caso in cui sei sotto Linux
hai gia' il gcc, ma sospetto che hai windows, perche' hai parlato di VB).
Maurus


I cambiamenti sono notevoli. Tra le due edizioni sono passati 6 anni 
fondamentali, nel corso dei quali e' stata completata la 
standardizzazione del linguaggio. Nella tua edizione per esempio manca 
completamente la descrizione della libreria standard, e presumibilmente 
non si parla seriamente ne di eccezioni ne di template.
Il mio consiglio e' che sfrutti il libro che hai per verificare come ti 
ci trovi. Dopodiche' se ti piace compri la terza edizione, che e' 
comunque un libro indispensabile se ti interessa continuare a 
programmare in C++, se e' un poco ostico ti compri il Lippman-Lajoie che 
copre il linguaggio in modo quasi altrettanto completo, ma in modo un po 
piu' semplice. Se invece non ti ci trovi per niente ti cerchi un altro 
libro (ma in questo caso ti converrebbe prendere in considerazione di 
scegliere un linguaggio di programmazione piu' "umano").
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: VENDO VISUAL STUDIO .NET

Ciao
causa trasferimento all'estero per lavoro ho bisogno di cambiare il mio
Visual Studio .Net in italiano con una versione inglese.
E' stato acquistato solo una settimana fa, non č ancora stato installato
quindi con licenza ancora da attivare (ovviamente tutto regolare).
E' la versione Architect, cioč quella piů sostanziosa. E' la versione
full, non č aggiornamento.
La rivendo a euro 1800 (nuovo costa euro 2700). Potete verificare presso
un negozio il reale prezzo.
Fatemi sapere via email
ciao
Key
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG



Newsgroup: it.comp.lang.c++
Titolo: Manuale in C++

Scusate ragazzi, qualcuno conosce in sito internet in cui trovare una
piccola versione di un manuale c++? 

Pier_paolo Ciullo (
ciu...@cli.di.unipi.it
) wrote:
: Scusate ragazzi, qualcuno conosce in sito internet in cui trovare una
: piccola versione di un manuale c++? 
http://www.nsm.it/mondobit/rubriche/cpp/index.htm
Non e` pero` ancora completo.

 piccola versione di un manuale c++? 
I guess, they have one at: 
www.iftech.com
.
	Erick The Red

Newsgroup: it.comp.lang.c++
Titolo: pulisci schermo

esiste sotto dos, un metodo che pulisca lo schermo alternativo al  system
("cls"); ?

 system ("cls"); ?
clrscr();
Non dovrebbe essere standard, si trova in <conio.h> (<cconio> per
gli amici).
-- 
C Ya!
/* Cut "DO NOT DISTURB" to reply */

a me serve che sia standard: è uno dei prerequisiti del progrmma che sto
facendo in quanto altro non è che un lavoro assegnatomi. Grazie
"Naetius" <naet...@NOTdespammed.comDISTURB> ha scritto nel messaggio
news:nvd79.219168$Jj7.5...@news1.tin.it...



Se il tuo codice deve essere compilato solo sotto DOS/Windows, puoi andare
tranquillo.
Non e' standard C++, ma e' "standard" per la programmazione sotto sistemi
M$.
(Almeno per la serie Windows 95/98.. le altre nn so')
Joshi

M$.
Sicuro?
|--------------------Configuration: _aaa - Win32 Debug--------------------
|Compiling...
|_aaa.c
|c:\Documents and Settings\demian\Documenti\VS\_aaa\c\_aaa.c(4) : warning C4013: 'clrscr' undefined; assuming extern returning int
|Linking...
|_aaa.obj : error LNK2001: unresolved external symbol _clrscr
|Debug/_aaa.exe : fatal error LNK1120: 1 unresolved externals
|Error executing link.exe.
-- 
Marco Barisione (ICQ 84277092)

facendo in quanto altro non è che un lavoro assegnatomi.
L'unico modo standard è usare una funzione che stampi un po' di righe
vuote. Il problema è che non sai neanche quante rige vuote bastano.


 Sicuro?
No. Mi sono scordato che la parola "standard" in Windows non esiste. :-p
Joshi


Bha, suppongo che 30 o 40 bastino. Il problema e' che ti trovi col cursore 
al fondo dello schermo. Le soluzioni sono due:
#ifdef __WIN32
system("cls");
#elif defined(LINUX)
system("clear");
#else
	for (register int i = 0; i < 50; ++i)
		cout << endl;
#endif
Oppure impari ad usare qualche libreria tipo le ncurses. Ciau
-- 
Andrea Bergia - studente
Linux Registred User #281550

Bha, suppongo che 30 o 40 bastino
In una console dos massimizzata su windows con risoluzione 1024*768 ci
stanno 61 righe.

Newsgroup: it.comp.lang.c++
Titolo: Come capire quanta memoria il mio processo sta usando?

Buongiorno a tutti.
Ho per le mani un programma scritto in Visual C++ di cui bisogna 
debuggare alcuni problemi di memoria.
Il programma č un software di calcolo che ha un ciclo principale che 
viene ripetuto molte volte.
Il sospetto č che quando ripete il ciclo il programma non liberi tutta 
la memoria che ha allocato, vorrei verificare se č veramente questo il 
caso.
Per farlo mi farebbe comodo una funzione che mi dice quanto memoria ho 
allocato sull'heap, pero' non ho ancora capito se una tale funzione esiste.
Sapete dirmi se esiste e come si chiama questa funzione?
Grazie

 Grazie
Salve,
Esistono degli strumenti per Microsoft Visual Studio.
'Memory Leak Detection and Isolation' in
http://msdn2.microsoft.com/en-us/library/k70yt3e2%28VS.80%29.aspx
Saluti.


fai l'overloading degli operatori new e delete, e conta la memoria
allocata/disallocata.
:)

Newsgroup: it.comp.lang.c++
Titolo: Re: Ericsson ChatBoard al PC

 
Dovresti chiedere ad un ng che tratta questo tipo di argomenti, come 
puoi leggere nelle *FAQ* qui si parla di C++ standard....cosa che non mi 
pare di vedere nel link che hai postato.
Buona fortuna.
-.-



 mi pare di vedere nel link che hai postato.
e secondo te i driver come si dovrebbero fare? con condensatori e
resistenze? ovvio che per fare i driver ci vuole un linguaggio? il C++ credo
sia perfetto!
Grazie lo stesso....riflettici un pochino la prox volta ok?
Ciao Luc@

 Grazie lo stesso....riflettici un pochino la prox volta ok?
Magari fossi *te* a sapere di cosa stai parlando...
A parte che il mio era un consiglio, forse in un ng del genere avresti 
avuto maggiore aiuto che qua....inoltre, probabilmente avresti bisogno 
di un ng dove potresti reperire informazioni OS-dependent, che ne dici ???
Magari it.comp.programmare.win32 ???
Inoltre ti servono tante informazioni relative al dispositivo che vuoi 
'pilotare' con i driver, e credi che quello c'entri con il C++ ??? E poi 
i protocolli ?? Come 'parla' il cell di cui vuoi scrivere un driver ???
Non credo che esista ericson.h in C++ Standard...
 >
 > Ciao Luc@
 >
 >
Ciao,
j0k3r
Newsgroup: it.comp.lang.c++
Titolo: Refresh da VC++

Ciao a tutti. Ho un problema... Vorrei fare un refresh di una bitmap che si
trova in un form di VB. Questa bitmap viene disegnata da una funzione
all'interno di una DLL che ho scritto in VisualC++. La funzione è BitBlt e
fa la copia di un'altra bitmap sempre presente nello stesso form in cui è la
prima bitmap. L'autoredraw delle due bitmap è settato a TRUE e necessita di
un refresh che vorrei comandare dalla funzione (NON DA VB) che copia la
bitmap.
Se l'autoredraw delle due bitmap è settato a FALSE la funzione fa
l'autorefresh, ma da dei problemi di visualizzazione. Qualcuno gentilmente
puo' aiutarmi per risolvere questo problema da VC++. Vi ringrazio in
anticipo e buon lavoro a tutti... ciao. (
gnc...@iol.it
)

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: Allocazione dinamica di memoria per array

Ciao a tutti
sto tentando di allocare dinamicamente memoria per un array bidimensionale,
nel seguente modo:
28      int size=argv[1];
29      double *M = new double [][size];
 
ma ottengo l'errore:
        main.cpp:29: parse error before `]' token
e non riesco a capire cosa correggere, grazie a chi mi potrà aiutare.
-- 
C o n t e
http://digilander.libero.it/Iamyourgod
Per rispondermi togli '_78' dall'indirizzo

 29 double *M = new double [][size];
Secondo te dovrebbe funzionare?!?
gli indichi una dimensione, ma gli specifichi due coppie di parentesi!!
Che pensi che il compilatore è un genio e sa quante righe e colonne vuoi
partendo da una sola dimensione?!?
 
Compilatori ad inteligenza artificiale?! ;-)
La sintassi per cui specifichi una sola dimensione è usata per il passaggio
come parametro formale ad una funzione, ma per l'allocazione devi
specificare tutto.
Hai mai visto una dichiarazione non dimnamica come questa:
double array[][20];
io penso di no!
--------------------------------
Inviato via 
http://usenet.libero.it

Per rispondermi togli '_78' dall'indirizzo
ci sono 2 errori:
1) devi scrivere new double * [size]
2) l'istruzione di sopra ti restituisce un pointer a un array di
double*, dunque l'indirizzo lo devi salvare in un
double ** M.
Probabilmente alcuni ti avranno risposto in una maniera poco gentile,
č capitato anche a me (mi hanno dato dell'ignorante o mi hanno
risposto  con un tono sprezzante) e mi ha dato fastidio. Dopotutto chi
non sa č qui anche per imparare...
Spero di esserti stato di aiuto.

 Spero di esserti stato di aiuto.
Grazie mille! In effetti chi mi ha dato la prima risposta mia ha corretto un
solo errore e l'altro è rimasto, infatti ho appena postato per chiedere
come fare, ma ora ho visto che mi hai anticipato.
Grazie
Ciao
Conte


 non sa è qui anche per imparare...
Questo non dovrebbe mai capitare. D'altra parte e' comprensibile che
chi le cose se le e' studiate e dedica del tempo ad aiutare gli altri
si irriti quando ha la sensazione (magari sbagliata) che chi scrive
non faccia il minimo sforzo per conto proprio, ad esempio comprandosi
i libri e studiandoseli, ma cerchi sostanzialmente di "scroccare" un
corso di C++ agli altri.
Lo scopo di un newsgroup come questo e' di aiutarsi a vicenda, no?
Ciao,
Nicola

Allora utilizza questa forma:
double *a = new double * [size];
questa perň crea un array di "size" elementi puntatori a double; questo
significa che devi allocare per ogni elemento un'altro double:
for (int K = 0; K < size; K++)
   a[ K ] = new double[size];
per ogni elemento dell'array, allochi "size" double, ottenendo cosě l'array
bidimensionale in memoria.
Al termine ricorda di eliminare tutta la memoria:
for (int K = 0; K < size; K++)
   delete[] (a[ K ]);
delete[] (a);

Newsgroup: it.comp.lang.c++
Titolo: Problema con i files

Salve, avrei bisogno di un aiuto per una funzione che ho scritto e che non
riesco a fare funzionare. Ho scritto un piccolo giochino che ora vorrei
arricchire con la possibilità di salvare il punteggio raggiunto su di un
file. Tutto tanto per imparare un poco di C++. Quello che ho pensato è steto
di utilizzare un file con 10 voci al massimo, quando un punteggio viene
salvato, se nel file sono salvati meno di dieci punteggi allora lo aggiunge
al file con la posizione altrimenti lo sostituisce al punteggio più basso.
Dopodichè, tutto tramite gli arrays, scalo di una posizione tutti gli altri
inferiori a quello che ho aggiunto (chiaramente so già come dati la
posizione del suo punteggio rispetto agli altri) e riscrivo  tutto sul file.
Vi pare che sia una cosa fattibile? Questa è la funzione che ho scritto, ma
mi dice access violation error:
void SaveRecord(int new_position, char new_player[], int new_score)
{
  char name[10][20];
  int position[10];
  int score[10];
  int i;
  int record_to_be_substituted;
  ifstream file("scoretable.txt", ios::binary);
  if (file)
  {
    for (i = 0; (!file.eof()); i++)
    {
      file >> position[i];
      file >> name[i];
      file >> score[i];
    }
  }
  else
  {
    file.close();
    // Questa funzione che viene chiamata da sola funziona,
    // ossia aggiunge la voca al file nell'ultima posizione.
    WriteReachedScore(new_position, new_player, new_score);
    return;
  }
  file.close();
  if (i < 10)
  {
    WriteReachedScore(new_position, new_player, new_score);
    return;
  }
  for (int a = 0; a < 10; a++) {if (position[a] == 10)
record_to_be_substituted = a;}
  position[record_to_be_substituted] = new_position;
  for (int a = 0; a < 20; a++) name[record_to_be_substituted][a] =
new_player[a];
  score[record_to_be_substituted] =  new_score;
  for (int a = 0; a < 10; a++)
  {
    if (position[a] <= new_position && a != record_to_be_substituted)
    {
      position[a]++;
    }
  }
  // Scrivo sul file
  ofstream out("scoretable.txt", ios::out);
  for (int a = 0; a <= i; a++)
  {
    out << position[a] << " "
        << name[a] << " "
        << score[a] << "\n";
  }
  out.close();
}
Vi avevo già chiesto anche per un altro errore su qyesta stessa funzione, ma
mi pareva di aver risolto. Secondo voi può andare come metodo o mi conviene
trovare qualcosa di diverso? Se si cosa mi consigliereste per salvare questi
maledetti punteggi?
Grazie e scusate se il post risulta molto lungo.
Ramses

Scusate, sono riuscito da solo. Grazie cmq.
Ramses
Newsgroup: it.comp.lang.c++
Titolo: Borland su win xp?

Salve
ho scaricato borland ma non riesco ad usarlo
perche' windows xp chiude automaticamente tutte le finestre dos
appena arrivano alla fine.
COme posso fare?
ce ne sono altri validi di copilatori?
non ce n'e' uno davvero STANDARD?
e poi..
dove posso trovare alcuni files .h che non ho?
GRAZIE

 GRAZIE
prego, HTH
--
Lupin85©
Azzurranet IRC: @#afiad, @#fils, @#pokegalaxy - ICQ: 91528290
Mail: Remove PAN to contact me
- "It is not important what you believe, only that you believe." -

 ha scritto nel messaggio
news:95fa32af.02111...@posting.google.com...


 col solo file .h ci farai molto poco.
l'italiano, Andrea..
l'italiano.


Newsgroup: it.comp.lang.c++
Titolo: Mixare codice managed e unmanaged

Ciao a tutti,
il mio problema è il seguente:
devo fare il porting di un'applicazione sviluppata in Borland C++
Builder 3.0, in visual studio 2005.
Mi piacerebbe creare un progetto CLR (visto che disegnare le
interfacce grafiche è molto più semplice che con MFC).
A parte il discorso 'form da ricreare', vorrei evitare di riscrivere,
almeno per il momento, le vecchie funzioni di calcolo scritte in ainsi
c . ho pensato di creare delle .dll unmanaged e chiamarle dal codice
managed, ma non so se è la soluzione giusta e nemmeno come si faccia.
Poi ho letto qualcosa del genere:  
http://msdn2.microsoft.com/en-us/library/ms235211(VS.80).aspx
,
ma anche qui i dubbi sono infiniti...
C'è qualcuno che si è già scontrato con un problema simile e che
sarebbe disposto a darmi un aiuto?
Grazie 1000
Paola

 sarebbe disposto a darmi un aiuto?
Guarda qui.
http://blogs.msdn.com/deeptanshuv/archive/2005/06/26/432870.aspx
in particolare la parte "Managed Exe calling Native Dll using import" 
che penso sia il modo più semplice.
p.s. cmq qui sei OT, se vuoi altro aiuto chiedi su 
microsoft.public.it.dotnet.vc
++
Bye
Jarod

Newsgroup: it.comp.lang.c++
Titolo: compilazione su xp per seven

Scusate la banalissima domanda.. ma google non mi aiuta.
Sto utilizzando Visual C++ 2008 Express sotto WinXP per compilare un 
programmino semplicissimo: è un banale "printf ("Hello world\n");"
Ovviamente sotto Xp non c'e' nessun problema, l'eseguibile funziona.
Al contrario sotto Win7 mi produce il seguente errore:
Impossibile avviare l'applicazione specificata. La configurazione della 
modalità affiancata dell'applicazione non è corretta. Consultare il 
registro degli eventi applicazioni o utilizzare lo strumento da riga di 
comando sxstrace.exe per ottenere ulteriori informazioni.
Quale flag devo cambiare per far girare il programma sotto entrambi i SO?
Grazie
Alessandro

 Scusate la banalissima domanda.. ma google non mi aiuta.
Risposta banale, infatti: appurato che l'eseguibile non funzionava 
nemmeno sotto altri computer con XP, ho semplicemente provato compilare 
linkando staticamente le librerie (erano un paio di opzioni da cambiare)
Ora funziona anche sotto Win7-64b
Alessandro
Newsgroup: it.comp.lang.c++
Titolo: Subclassing in MFC

Salve a tutti!
Ho un problema con le MFC 4 (VC++5.0).
Scrivendo una libreria di classi ho la necessità di effettuare il
subclassing di una finestra, mi spiego:
Una mia classe ha bisogno di elaborare alcuni messagi di una finestra il cui
HANDLE viene passato nel costruttore della classe stessa. Per fare in modo
che tutto ciò sia trasparente alla finestra ho pensato di sostituirle una
mia window procedure, processare i messaggi che mi interessano quindi
ripassarle il controllo con DefWindowProc(). In teoria funzionerebbe ma il
problema è forse il routing dei messaggi in MFC: la finestra non si
ridisegna!!
Avete qualche idea a tal proposito.
Ciao e grazie.

ridisegna!!
Se tu passassi la palla a DefWindowProc, anche per una finestra
non MFC, non staresti *comunque* effettuando un subclassing; la
chiave del subclassing e` "passare la palla", per quei messaggi
che non puoi interamente gestire, alla *window procedure originale*
della finestra stessa, NON alla *window procedure di default di
sistema*.  Quando istalli la tua window procedure con SetWindowLong
e parametro GWL_WNDPROC, ti torna l'indirizzo della window
procedure precedentemente settata; salva quell'indirizzo, e usa
poi l'API CallWindowProc per "ripassarle la palla".
In MFC, hai anche approcci alternativi piu` comodi, in particolare
quello di definire, per il subclassing, un tuo oggetto di una classe
derivata da CWnd, e usare la sua funzione membro
SubclassWindow (ignora il paragrafo della doc che ti dice
di usare GetSuperWndProcAddr, non ce n'e` piu` bisogno
da un pezzo -- la doc e` obsoleta in merito).  Comunque, nulla
ti impedisce di usare anche "subclassing nudo e crudo", basta
chiamare la window procedure "giusta", non quella default.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Nascondere l'implementazione di una classe template

Come si nasconde l'implementazione di una classe template?
Definendo la classe template nell'header anche le funzioni membro (e gli
eventuali operatori) vanno implementati nell'header.
E' possibile scrivere l'implementazione nel source file?.
Grazie.
Sergio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Come si nasconde l'implementazione di una classe template?
Lasciando da parte la questione dell'implmentazione della keyword
'export' (cerca con Google), che comunque probabilmente non cambia la
sostanza del problema, per instanziare un template con un tipo arbitrario
il compilatore deve avere visibilità sul codice sorgente, o comunque su
qualcosa che contenga le stesse informazioni allo stesso livello di
astrazione. Quindi, in generale, non si può nascondere l'implementazione di
un template. E questa mi pare una buona cosa. :)
E' possibile, invece, instanziare esplicitamente il template per alcuni tipi
specifici e ottenere, ad esempio, una libreria utilizzabile con quei
particolari tipi senza avere visibilità sul codice dell'implementazione.
Max
Newsgroup: it.comp.lang.c++
Titolo: Aiuto Polimorfismo

Ciao a tutti,
sto scrivendo il mio primo programma in c++. Lo scopo del programma è un
classico: gestire una rubrica, cioè una lista di contatti. Fin'ora ho
scritto quattro classi di cui riporto qui le parti essenziali:
class Contatto {
public:
  Contatto() {}
  Contatto(string n, string i, string t) : nome(n), indirizzo(i), tel(t) {}
...
  virtual void print() {
	  cout << nome << "\n"
		   << indirizzo << "\n"
		   << tel << "\n" << endl;
  }
...
private:
	string nome, indirizzo, tel;
};
class ContattoPersonale : public Contatto {
public:
  ContattoPersonale() {}
  ContattoPersonale(string nn, string n, string i, string t) : nickname(nn),
nome(n), indirizzo(i), tel(t) {}
...
  void print() {
	  cout << nickname << "\n"
		   << nome << "\n"
		   << indirizzo << "\n"
		   << tel << "\n" << endl;
  }
...
private:
	string nickname, nome, indirizzo, tel;
};
class ContattoProfessionale : public Contatto {
public:
...
    void print() {
	  cout << nome << "\n"
		   << ruolo << "\n"
		   << indirizzo << "\n"
		   << tel << "\n"
	       << fax << "\n"
		   << email << "\n"
		   << web << "\n" << endl;
...
  }
private:
	string nome, ruolo, indirizzo, tel, fax, email, web;
};
class ListaContatti {
public:
	ListaContatti() {}
	bool inserisciContattoPersonale(string nn, string n, string i, string t) {
		ContattoPersonale cp(nn,n,i,t);
		v.push_back(cp);
		return true;
	}
...
	void mostraLista() {
		vector<Contatto>::iterator it;
		cout << "\n";
		for(it=v.begin(); it!=v.end(); it++) {
			it->print();
			cout << "\n";
		}
	}
...
private:
	vector<Contatto> v;
};
Il problema è che il metodo mostraLista di ListaContatti non funziona, non
stampa nulla a video. Quale può essere il motivo?
Grazie
Scusate per la lunghezza
Franco
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 stampa nulla a video. Quale puň essere il motivo?
Il motivo č che tu dichiari un vector di Contatto non di ContattoPersonale
dentro la classe ListaContatti. Come membro di tale classe sei costretto a
dichiarare il vettore della classe piů derivata ossia:
vector<ContattoPersonale> v;
infatti tu richiami il push_back con un ContattoPersonale, ma poi dichiari
un iteratore di tipo vector<Contatto> e ovviamente ciň non č compatibile
(poichč infatti gli iteratori si comportano in maniera molto simile ai
puntatori, quando tu fai it++)


http://groups.google.com/groups?q=polimorfismo+vector+copia+derivate
Guarda i primi due messaggi (che, guarda caso, sono miei).
Max
Newsgroup: it.comp.lang.c++
Titolo: complex e mandelbrot

sto realizzando un'applicazione per la visualizzazione di frattali.
siccome ho bisogno di fare molti calcoli con numeri complessi mi conviene
utilizzare (dal punto di vista delle prestazioni ) std::complex oppure una
classe numero complesso piu' semplice?
grazie

Giovanni Casu ha scritto:

Non ne ho la più pallida idea :-) ma ti consiglio di mantenere l'header
della tua classe simile a quello di std::complex, fare dei test e vedere
quale è più veloce.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

 ha scritto nel messaggio
news:3t5G9.16154$qF1.7...@news2.tin.it...

Quello che conta non e' tanto la complessita' (numero di funzioni) di una
classe, semmai questo ti da' codice piu' grande, ma non piu' veloce. La cosa
importante e' l'interfaccia delle funzioni che servono a te.
Un problema della classe std::complex e' che le variabili proprie di parte
reale e immaginaria non sono pubbliche.
Quindi per ottenere il loro valore devi usare le funzioni real() e imag().
Queste dovrebbero essere inline, ma e' meglio controllare il risultato in
assembly.
Con la std::complex e' impossibile impostare separatamente la parte reale e
immaginaria del numero.
Se realizzi una tua classe, e non fai troppi errori, avrai sicuramente
prestazioni uguali o migliori di std::complex.
Ottieni pero' un sorgente piu' grande, meno standard, meno manutenibile,
piu' difficile da comprendere.

Newsgroup: it.comp.lang.c++
Titolo: auto_ptr == proxy ?

Salve,
Mi chiedevo l'implementazione della classe template auto_ptr è basata sul
pattern proxy ?
Ed inoltre se si genera una eccezzione nel blocco in cui dichiaro e
inizializzo con un new , un puntatore auto_ptr
la sua memoria viene liberata ?
grazie ciao

 la sua memoria viene liberata ?
Quando un auto_ptr viene distrutto viene invocato 'delete' sul puntatore a 
cui è associato, sia che la morte avvenga per cause "naturali", sia che 
venga lanciata un eccezione. In generale, auto_ptr serve proprio per 
garantire la distruzione di un oggetto dinamico in quei casi in cui esiste 
l'eventualità di un eccezione.
Max


In effetti se si ragionavo un pochetto, sulla seconda domanda mi rispondevo
da solo.
Newsgroup: it.comp.lang.c++
Titolo: dubbio teorico

Scusate, ho un piccolo dubbio e non ho lo standard sotto mano.
E' lecito dichiarare il costruttore pubblico e il distruttore privato?
Ho come un vago ricordo di aver letto da qualche parte che ciň non sarebbe
consentito, ma forse mi sto confondendo.
Grazie,
Max




Tecnicamente non c'e' nessun problema. Viene pero' da domandarsi a cosa
questo possa servire.
Ciao,
Nicola

 questo possa servire.
Perfetto. Mi sembrava solo di ricordare vagamente che la diversa
accessibilità tra costruttore e distruttore non fosse permessa.
Un'applicazione sensata ce l'ha, credo (e non l'ho inventata io, è una
tecnica che ho visto usare). Se il dtor è privato (o comunque non
accessibile), l'oggetto non può essere automatico, potrà essere
instanziato ma non potrà essere distrutto direttamente con delete.  A
questo punto, ovviamente, la classe dovrà disporre di un qualche metodo
che faccia delete this o altrimenti provvedere in qualche modo alla
gestione del proprio lifetime. Forse, in questi casi, è più pulito rendere
anche il ctor privato e fornire un qualche sistema di factory, ma credo ci
siano casi in cui l'instanziazione può benissimo essere lasciata al codice
client, mentre la gestione del lifetime deve essere controllata
dall'oggetto stesso. In questo caso mi pare possa aver senso avere ctor
pubblico e dtor privato.
Max

questo possa servire.
Ad essere richiamato solo da funzioni friends anche se tutti lo
possono allocare.
-- 
Tieni per te il Papero giusto se vuoi la mia email
Sito Papero 1 -> 
http://utenti.tripod.it/papero
Sito Papero 2 -> 
http://user.7host.com/papero/

Newsgroup: it.comp.lang.c++
Titolo: deallocare un array

Ho allocato un array nel seguente modo:
int * SubBox[8];
 for (int i=0;i<8;i++) SubBox[i]=NULL;
 for (i=0;i<8;i++) SubBox[i]=new int[numtriangle];
non riesco a deallocarlo correttamente con l'operatore delete...
qualcuno ha un idea?
Grazie.
Ale.

  for (i=0;i<8;i++) SubBox[i]=new int[numtriangle];
for (i=0;i<8;i++) delete[] SubBox[i];
Ciao,
Nicola

for (i=0;i<8;i++) delete[] SubBox[i];
//deallocchiamo anche gli otto puntatori
delete [] SubBox ;


Non e' detto. La mia esperienza insegna che e' meglio mettere un
"azzeratore" di
puntatori come questo: possono succedere dei casini a volte.(o forse dipende
dai
compilatori stupidi come il mio VC++ della Microsoft??)
In ogni caso almeno, dopo, sei SICURO che sono tutti NULL :))
Joshi



No. SubBox non è un puntatore, è una variabile automatica di tipo array
(v. messaggio iniziale).
Max

(v. messaggio iniziale).
Hai ragione.

 In ogni caso almeno, dopo, sei SICURO che sono tutti NULL :))
Si, per quella frazione di secondo che intercorre tra l'assegnamento di
NULL e l'assegnamento del nuovo array allocato. Mah...
Ciao,
Nicola

 NULL e l'assegnamento del nuovo array allocato. Mah...
Si scus, su questo hai ragione, io parlavo del metodo in generale che a
volte viene considerato inutile anche in casi differenti.
JOshi
Newsgroup: it.comp.lang.c++
Titolo: Informazioni per un principiante

Ciao a tutti,
                volevo sapere se qualcuno può darmi il codice commentato che
sposta sullo schermo una figura (cerchio, rettangolo, ...). Penso si debba
usare Getimage e Putimage.
Inoltre su internet si può trovare il C++ intero da qualche parte?
Vi ringrazio ancora per l'attenzione
ciao

 Vi ringrazio ancora per l'attenzione
Cos'e' il C++ intero? Intendi un compilatore? Ce ne sono tanti. Intendi un
reference completo? Idem. Intendi lo standard? Si, ma paghi per scaricarlo.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Newsgroup: it.comp.lang.c++
Titolo: Librerie per programmazione da console...

Esistono librerie che contengono oggetti da usare in ambienti solo testo?
che so, cornici, pulsanti, caselle di testo, etc...
in pratica qualche strumento che consenta di scrivere programmi tipo edit o
scandisk di dos(ovviamente mi riferisco all'interfaccia) o tipo i vari
programmi di configurazione "visuali" per linux...
Grazzzzie!
Raffaele

 ha scritto nel
messaggio news:ansr5j$rp9$4...@lacerta.tiscalinet.it...

Newsgroup: it.comp.lang.c++
Titolo: Breakpoint in Builder

Lavoro con il Builder 3.0 e sto' realizzando una applicazione che fa un
largo uso dei puntatori. Spesso mi capita di commettere qualche errore
nel codice che mi crea una eccezione; ma questo non é il problema. Il
fatto é che in fase di debug con l'utilizzo di breakpoint talvolta una
eccezione che si presentava non si verifica piú. Come se l'utilizzo del
breakpoint modificasse l'immagine dello Heap. Non so se a voi é mai
capitata una situazione simile. Sarei curioso di sapere se
effettivamente si tratta di un bug del builder oppure del verificarsi
semplicemente di strane ed imprevedibili coincidenze. Mi spiace di non
poter essere piú chiaro ma non sono riuscito a ripetere questa
situazione in un esempio piú semplice.
Grazie a tutti.

 eccezione che si presentava non si verifica piú.
Una possibilita': pointers dal contenuto sbagliato.  Senza e con
debugger il contenuto della memoria puntata e' differente.
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

E` piu` probabile che il fenomeno sia legato ad un meccanismo per cui
non si verifica sempre, ad esempio un loop con un numero di cicli
non fissato a priori. Nella realizzazione di una applicazione e` utile e
conveniente utilizzare sempre del codice per il debug, in particolare
usa le assert... inoltre dovresti preoccuparti di intercettare sempre
le eccezioni che una qualche funzione (o l'operatore new) lancia
in caso di errore, altrimenti in caso di eccezione non gestita
l'handler di default non fa altro che terminare il programma.
Utilizzano bene le eccezioni invece potresti capire piu`
facilmente cosa e` successo con un messaggio piu`
specifico...
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: [newbie]dimensione di un file

Se volessi conoscere la dimensione di un file in byte dovrei usare la
funzione stat nel file stat.h, giusto?
Allora perche' il seguente codice non funziona? Perche', perche',
perche'... T_T
#include <iostream>
#include<sys/stat.h>
using namespace std;
int main(){
    stat io;
    stat("pippo.cpp",&io);
    cout<< io.st_size;
}
Il mingw che viene distribuito col dev c++ da i seguenti errori:
c:\progetti\cpp\pippo.cpp: In function `int main()':
c:\progetti\cpp\pippo.cpp:8: `stat' undeclared (first use this
function)
c:\progetti\cpp\pippo.cpp:8: (Each undeclared identifier is reported
only once
c:\progetti\cpp\pippo.cpp:8: for each function it appears in.)
c:\progetti\cpp\pippo.cpp:8: parse error before `;'
c:\progetti\cpp\pippo.cpp:9: `io' undeclared (first use this function)
Ciao.
--
Valerio "tutto questo mi ricorda un fumetto..." Benfante
cageka...@katamail.com
http://pc1amov.math.unipa.it/~bitter/
Rimuovete katamiati dalla mia e-mail se volete scrivermi.

Il giorno Tue, 13 Feb 2001 19:16:38 GMT, "Valerio Benfante" ha digitato 
quanto segue:
mancano 2 include
#include <sys/types.h>
#include <unistd.h>

 Allora perche' il seguente codice non funziona? Perche', perche',
Il problema e' che <sys/stat.h> dichiara sia una
  struct stat { ... };
che una funzione 
  int stat( ... );
Quando nello stesso scope sono dichiarati sia una classe/struct
che un oggetto/funzione con lo stesso nome, per accedere alla
classe non basta il solo nome ma ci vuole anche la keyword 
class/struct.
Nel nostro caso per dichiarare un oggetto di tipo stat non basta
  stat io;  // errore
ma ci vuole
  struct stat io;
	Mauro

 #include<sys/stat.h>
name mangling?  Prova "extern C { #include <sys/stat.h> }...  "man
stat" dice che dovresti includere anche <sys/types.h> e <unistd.h> .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.

funzione stat nel file stat.h, giusto?
CUT
Grazie!^__^
Ho riaggiustato il codice seguendo i vostri consigli e tutto funziona
alla perfezione!

Newsgroup: it.comp.lang.c++
Titolo: Porting C da DOS a DLL di Windows

Salve a tutto il gruppo.
Sono un programmatore Visual Basic e conosco il C (ANSI) abbastanza bene.
Purtroppo però non ho mai usato Visual C++ o simili. Io dovrei semplicemente
trasformare alcuni sorgenti C, che provengono da piattaforme DOS, in DLL che
esportino funzioni.
Qual'è, secondo il vostro parere, l'IDE più adatto? so già che io non riesco
a farlo, ma per quello che ho visto, per una persona che conosce bene VC++
non dovrebbe essere difficile. E' così o in genere l'impresa presenta delle
difficoltà strutturali notevoli?
Il programma in questione esegue un algoritmo BSP-Tree per il rendering di
scene 3D... e ne mostra il risultato. A me servirebbe come DLL che in
ingresso riceva un'array, e che in uscita restituisse l'array di poligoni
ordinati invece di visualizzarli.
--
Fabio Guerrazzi

 ordinati invece di visualizzarli.
Non dovrebbe essere difficile. Le complicazioni sono solo quelle di imparare
ad usare l'IDE. Io con il VC++ ci ho messo un pochino, per scoprire poi che
era semplicissimo. Le funzioni restano uguali, devi solo esportarle, con il
metodo che preferisci tra quelli suggeriti dall'help. Attenzione però a
(rari, credo) eventuali problemi di memoria.
--
Alessandro Monti

In effetti hai ragione, all'inizio ci si mette un po' per capire l'IDE del
Visual C++ cioč Integrated Development Enviroment (ambiente integrato di
sviluppo). Uno volta imparato ci si accorge che in fondo era molto semplice.

Newsgroup: it.comp.lang.c++
Titolo: errore del linker

Ciao a tutti,mi capita una cosa strana col C++ Builder 5 di Borland.
Ho scritto un libreira di funzioni,quindi un'applicazione(si fa per
dire....) che dichiara una classe con delle funzioni che si servono delle
funzioni della libreria.
Il linker mi da un errore dicendomi che non riesce a linkare una determinata
funzione presente nella libreria.
Un'altra funzione,perň,vedo che non presenta alcun problema,ma  la cosa piů
strana č che la funzione senza problemi,si serve,cioč fa una
chiamata,all'interno dellla libreria stessa,della funzione che ha
problemi...
Cioč le chiamate di funzione all'interno della libreria funzionano
benissimo.
C'č dell'altro...ho scritto una applicazione che utilizza direttamente le
funzioni di libreria (quindi non utilizza la classe precedente),e non
presenta alcun problema.
Comunque,l'errore del linker č questo:
[Linker Error] Unresolved external 'syscount(char *)' referenced from
C:\....\UNIT1.OBJ
Infatti all'interno della classe ho definito una funzione che a sua volta si
serve della funzione syscount,definita nella libreria...
Se qualcuno ha delle informazion ida darmi,grazie tante.
Ciao,
Alberto.



 
Non è C++ !!
Cmq se hai la libreria UNIT1.OBJ devi dare il path al compilatore perchè
forse non è nel path standard.
Vedi il manuale del compilatore.
Ciao.

 Ciao.
Scusa.Non  UNIT1 ma quella che ti serve. UNIT1 è l'obj compilato.  

Ho capito.
Molte grazie,
Alberto.
Newsgroup: it.comp.lang.c++
Titolo: Conversione audio 8 bit -> 16 bit e viceversa!

Sto giocando con la generazione e la manipolazione di campioni audio con il 
directX.
Ad un certo putno mi ritrovo (per non cambiare troppe cose) a dove 
convertire il mio buffer in BYTE in un array di short e viceversa.
Cercando in rete ho trovato questo:
**************************************************************
double dPowI = ceil( log10( (double)iLen / ( ((double)wBitsPerSample / 8 )
     + wChannels - 1 ) ) / log10( 2.0 ) );
int iNearTwoPower = (int)pow( 2.0, dPowI );
short *psTemp = new short [iNearTwoPower];
short sSample = 0;
long lBit = 0;
int ik;
long l;
unsigned long dwTemp;
unsigned long dwDen = 0xFFFFFFFF >> ( 32 - wBitsPerSample );
for( l = lBit = 0; l < iNearTwoPower * wChannels; l++ )
{
     if( lBit < iLen-1 )
     {
          dwTemp = 0xFFFFFFFF;
          for( ik = 0; ik < wBitsPerSample / 8; ik++ )
              ( ( unsigned char * )&dwTemp )[ik] = pBuffer[lBit + ik];
          lBit += ik;
          sSample = ( short )MulDiv( dwTemp, 0xFFFF, dwDen );
     }
     if( l && !( l % wChannels ))
     {
          psTemp[lKont] = sSample;
          lKont++;
          if( sSample < iMinSample )
              iMinSample = sSample;
          if(  abs( sSample ) > iMaxSample )
              iMaxSample = abs( sSample );
     }
}
**************************************************************
Cosi' riesco a convertire il mio pBuffer in psTemp. Ma devo dire ho delle 
difficolta' a capire cosa fa, e non so fare il contrario ossia riconvertire 
il mio psTemp nel pBuffer che mi verebbe comodo.
C'e' qualcuno che mi puo' aiutare?
Grazie.

 C'e' qualcuno che mi puo' aiutare?
da 8 a 16bit -> moltiplichi per 256 o shifti a sinistra di 8 bit
da 16 a 8bit -> dividi per 256 o shifti a destra di 8 bit
Perņ, consiglio spassionato...
Lavorare un segnale audio in 8bit fa discretamente schifo eh :)

 Lavorare un segnale audio in 8bit fa discretamente schifo eh :)
Dipende dalle applicazioni.

 Dipende se si tratta di signed/unsigned
Solo per lo shift in effetti.
Altrimenti -3 * 256 = -768 che è corretto.

 Altrimenti -3 * 256 = -768 che è corretto.
Mica detto che si deve trasformare solo da signed a signed !
Newsgroup: it.comp.lang.c++
Titolo: nodi, grafi, cammini ecc

Salve
Ho un grafo orientato aciclico, un certo numero di sorgenti, un certo numero
di foglie, e dati x nodi voglio trovare tutti i cammini da sorgente a
foglia passanti per tutti gli x nodi. Quindi un cammino e valido, se parte
da una sorgente, arriva ad una foglia, a pasa per tutti gli x nodi. 
grazie


wrote:

Non č questo il gruppo giusto per questa domanda. Comunque mi sa che
si puň dimostrare che il cammino che passa per tutti i nodi interni
esiste se e solo se il DAG, a parte le sorgenti e le "foglie" (non mi
viene la traduzione di drains), non č altro che una banale lista.

Salve

Scusa, ho letto il tuo post anche su comp.lang.c++, e adesso ho capito
cosa volevi chiedere. Quindi dimentica la mia risposta precedente.
Il posto giusto per la domanda è it.scienza.informatica
Chiedi lì. Comunque ti avviso che secondo me l'algoritmo è diverso a
seconda di quante volte devi trovare la soluzione sullo stesso grafo,
e come varia l'insieme degli x nodi da una volta all'altra. Forse non
è così dal punto di vista della complessità computazionale, ma
sicuramente lo è da un punto di vista più pratico.
Newsgroup: it.comp.lang.c++
Titolo: libri di BCB3, un pò pochi!

Salve a tutti,
vorrei imparare a programmare in BCB3 e volevo sapere se esistono libri che
trattano l'argomento in modo abbastanza completo (quelli editi dalla
borland press "Teach yourself BCB++ 3 in 14 days " o qualcos'altro del
genere in 21 days non  mi ispirano un gran che, ma se sostenete il
contrario ditemelo), o se in alternativa potevano andare bene anche quelli
che insegnano BCB1, almeno come base(anche se so che BCB 1 è abbastanza
diverso da BCB3).
Non capisco perchè sul VC++ ci siano una marea di libri, mentre sul BCB3
pochi, qualcuno sa darmi una risposta?
Grazie e ciao.
Diego

AvanZ ha scritto nel messaggio <01bdaa3f$0a7763e0$fc52d8d4@AvanZ>...

Ciao,
devo dirti che con il libro che tu dici io mi sono trovato bene,
(BCB++ in 21 giorni in italiano), avevo buone basi di programmazione
in C (DOS e Win) e pochissime conoscenze di C++, e il libro mi é sembrato
ben
strutturato e abbastanza completo (e ben fatto).
Se trovi un catalogo McGraw Hill anche loro hanno qualche libro sul bcb+
Ricordati una cosa, oltre ai libri sul bcb dovresti acquistare qualcosa
sulla
programmazione in C++ generico (senza ne Visual ne Builder) e ,a dipendenza
di cosa programmi , anche qualcosa sulla programmazione in Windows.
Per la tua risposta
Il fatto che ci sono un numero incredibile di libri su VC é che é politica
di Microsoft vendere i prodotti
di sviluppo con pochissima documentazione cartacea (a parte rarissime
eccezioni). Hai mai visto la documentazione di Visual C++ o Visual J++ ????
al contrario la doc di VB5 é abbastanza massiccia.....
Stranezze della Vita ...Mah
Ciao
Roberto "Loba" Corti
Amministratore di rete
rco...@NOSPPAMONItinet.ch





pochi, qualcuno sa darmi una risposta?
1. quote di mercato: VC++ vende di piu` di BC++B
2. provenienza degli utenti: spesso l'utente BC++B viene da Delphi
    e quindi sa gia` (magari da un libro su Delphi) il grosso di quel
    che gli serve per usare BC++B
3. (ipotesi) VC++ e` piu` ricco e complicato di BC++B per cui c'e`
    piu` domanda di testi che lo spieghino
4. BC++B 3 e` sul mercato da poco tempo rispetto a VC++5 (e molti
    testi sul VC++ in realta` parlano del VC++4, che e` in giro da
    ancora piu` tempo -- visto che le MFC del VC++ 5 sono le 4.2,
    appunto piu` o meno le stesse del VC++ 4.2...)
Come vedi UNA risposta non so dartela, ma quattro si`...:-).
Alex
Newsgroup: it.comp.lang.c++
Titolo: Creare un iterator

Diciamo che ho creato una lista normalmente linkata e voglio crearci
un iterator. Mi sono riletto il messaggione di Alex e li' gia' dava
il la' per crearne uno, ma poi sono andato a vedere tu thinking in c++
v II, e mi trovo una cosa del tipo:
template<class T>
     class Ring {
     list<T> lst;
public:
class iterator;
friend class iterator;
class iterator : public std::iterator<
  std::bidirectional_iterator_tag,T,ptrdiff_t>{
                                                                                      list<T>* r;
ora.. che vogliono dire quei parametri per il template dello std::iterator
da cui si deriva? Io, avendo una lista semplice, penso di creare solo un
iterator che va avanti, e da quanto ho capito bisogna anche creare un iterator
per liste che contengono oggetti costanti, tipo const_list_iterator.
Come dovrei procedere? Quello che mi interessa piu' che altro e' sapere
che parametri usare per la derivazione dagli iterator standard..
-- 
Saluti,
 Francesco Cipriani

[questo e' un repost, perche' nessuno mi ha risposto e mi sembra stano :) ]


Ciao, Francesco.
Ti rispondo solo quel poco che so: un iteratore deve rispondere ad
alcune convenzioni, tra cui definire alcuni tipi: value_type, pointer,
reference, distance_type. Se vai a sbirciare l'include corrispondente
noterai che il template iterator si limita a definire questi tipi in
base ai parametri che gli passi.
Per il resto posso solo consigliarti di andarti a spulciare la
documentazione Silicon su 
www.sgi.com/Technology/STL
 (o qualcosa del
genere: sulle FAQ dovrebbe esserci), se non addirittura l'ottimo libro
di Matt Austern "Generic Programming and the STL" pubblicato da Addison
Wesley. Almeno trovi un indicazione precisa di cosa un iterator deve
fare, se non di come farglielo fare.
Ciao,
Nicola

 reference, distance_type.
Inoltre deve obbligatoriamente definire almeno l'operatore di
dereferenza (*) e il pre-incremento (++), se non sbaglio.
EMG

... piu' il costruttore di default, la dereferenziazione di membro (->),
il preincremento... Per realizzare un iteratore che aderisca alle
convenzioni dell'STL e' indispensabile consultare uno dei riferimenti da
me indicati (o altro materiale analogo).
Ciao,
P.S. Non sono andato a memoria; ho dato una scorsa al sito SGI alle voci
"Trivial Iterator" e "Input Iterator".
P.P.S. In attesa di vedere come sara' "Effective STL" di Scott Meyers...
Newsgroup: it.comp.lang.c++
Titolo: Tipizzazione variabili: prima o dopo?

Che differenza c'e' fra dichiarare
il tipo delle variabili all'inizio
es.
int j,k;
bool trovato;
o nelle istruzioni; mi spiego
meglio, es.:
for (int j=1; j<=3; j++) {
 ... ...
}
E' la stessa cosa
Scusate se non uso un linguaggio
tecnico rigoroso.
Grazie

E' la stessa cosa
E' la stessa cosa ?
Grazie e scusate ancora


La visibilità, nel c aso del for, j è visibile solo all'interno e non 
fuori. (ultimo std c++)
Luigi

 }
Oltre alle differenze nella visibilità che ti hanno già segnalato definire
le variabili al momento opportuno, ovvero dove ti servono del codice, è una
possibilità che il C++ ti da (a differenza del C) e che ti permette di avere
un codice più leggibile e, in alcuni casi, più veloce.
-- 
Domenico Testa - Studente assonnato

Newsgroup: it.comp.lang.c++
Titolo: conflitto di librerie in VC++

Ciao...
ho usato le classi predefinite CArray e CUIntArray delle MFC e in fase
di link esce un conflitto tra librerie, l'errore è un conflitto tra
librerie; in pratica gli operatori delete e new di non so quale delle
due classi risultano già definiti nel file libcmt.lib ( o qualcosa del
genere, non ce l'ho sott'occhio);
questo problema rimane anche modificando i setting del progetto secondo
le istruzioni della guida in linea (che infatti suggerisce di escludere
questo file più altri nella cartella LINK).
Grazie in anticipo a chi mi risponderà!!!
ciao.

di link esce un conflitto tra librerie, l'errore è un conflitto tra
Suggerirei di lasciar perdere queste classi e usare
invece lo std::vector (#include <vector>) e altre
classi standard C++... comunque vedi un po` tu!
Alex


Per esperienza personale condivido appieno il suggerimento di Alex.
Nel tempo ho dovuto convertire alcuni programmi da classi come CArray
alle classi della STL dato che le prime hanno sempre fornito un sacco di
problemi.
Conviene partire subito con la STL.
massimo