mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: cambiare le occorrenze di un carattere in una stringa

Salve,
esite una funzione C che mi permette di cambiare tutte le occorrenze di un
caratte in una stringa con un' altro carattere?
stringa: aabbccddabcd
cambio la 'a' in 'b'
stringa bbbbccddbbcd
Grazie
Alessandro
fior...@tiscalinet.it


No, ma la puoi costruire molto facilmente:
void change_to (char *str, char from, char to)
{   for(;*str;++str) if(*str==from) *str=to;
}
Non ho provato la funzione, ma dovrebbe 'funzionare' (scusa il gioco di
parole :-))
Ciao
Domenico Barra

 stringa bbbbccddbbcd
  #include <string>
  #include <algorithm>
  #include <iostream>
 
  int main()
  {
    std::string str( "aabbccddabcd" );
    std::replace( str.begin(), str.end(), 'a', 'b' );
    std::cout << str << std::endl;
  }
 
	Mauro


Uhm, se non mi sbaglio č C++, mentre lui aveva chiesto C
Ciao
Domenico Barra


wrote:

Allora era OT 8)
Luc.

 Uhm, se non mi sbaglio è C++, mentre lui aveva chiesto C
Questo e' un gruppo sul C++, se avesse voluto una soluzione
in C l'avrebbe chiesta su it.comp.lang.c
	Mauro

Allora era OT 8)
Concordo, ma secondo me č meglio rispondere "sei OT" piuttosto che dare
un'indicazione fuorviante, no?
Ciao :-)
Domenico Barra

caratte in una stringa con un' altro carattere?
In C credo che non esista, ma te la puoi creare facilmente.
void Replace(char* stringa,char sost,char new_char)
    {
    int x;
    for(x=0;x<strlen(stringa);x++)
        if(stringa[x]==sost)stringa[x]=new_char;
    }
Il Ghenio
-----------
LOVELY SARA
Dal lunedi'al venerdi'su Italia Uno alle 8:10
Non perdetevelo...
-----------
Newsgroup: it.comp.lang.c++
Titolo: aiutoooooooo non ci sto capendo niente!!!!!

premetto che sono alle primissimissime armi con il C++,  dopo aver comprato
il libro di  C++ Corso di programmazione - 3a edizione di Stanley Lippman e
Josče Lajoie, pubblicato da Addison- Wesley sono arrivato a leggere/studiare
fino al 3° capitolo e fino ad ora non ci ho capito mica tanto!!!!! in questi
tre capitoli ci sono argomenti che tratterŕ con maggior dettagli nei cap
successivi....quindi questi dovrebbero rappresentare solo un'introduzione al
C++ almeno spero..... Vi chiedo: č giusto quello che ho detto? oppure devo
ricominciare a ristudiare? inoltre quali dovrebbero essere i capitoli che
dopo un'attenta lettura dovrebbero portarti al punto di iniziare a
smanettare con il pc per realizzare in pratica ciň che si č appreso dalla
teoria? grazie a tutti quelli che risponderanno!!!!!!!!

 smanettare con il pc per realizzare in pratica ciò che si è appreso dalla


 programmare.     Ciao.
Ah... e insegnano anche le tecniche pratiche per quotare?
Per quel che riuarda il Lippman č generalmente ritenuto uno dei
migliori libri per cominciare col C++.
Nel secondo e terzo capitolo, che chi ha fatto la domanda ha letto,
ci sono numerosi esercizi proposti.
Credo che possano dare piů di uno spunto interessante.
L'importante č non scoraggiarsi :-))
--
Gerolamo

 fino al 3° capitolo e fino ad ora non ci ho capito mica tanto!!!!! in
questi
Dal capitolo 3 in poi e' tutto a portata di principiante, i primi due
capitoli sono pensati per un lettore che gia' conosce il C++, interessato a
una rapida panoramica sulle novita' dell'ultimo standard. Cmq hai fatto un
ottimo acquisto, il Lippman ti guidera' lungo l'oscuro sentiero della forza.
Ci sono autori (non faccio nomi :) che abbandonano il sentiero e' ti guidano
verso l'ignoto (con un fiasco di vino sotto la giacca.. :)))
Salut


No.
Si quota, in modo da scrivere sotto al messaggio originale ed eventualmente
tagliando le parti che non servono nella risposta.
Maurus

Ok... ok!!! La prossima volta prometto che prenderò lezioni.
"Maurus" ha scritto:



Vedo che ancora non hai capito...
Non serve prendere lezioni, basta concentrarsi un minimo prima di premere il
tasto invio.
Maurus

Tagliamo la testa al toro... niente "quotation".
PS. Daccordo il villaggio globale, ma almeno usiamo l'italiano visto che il
news è di tipo it.* ("a écrit dans le message news").

 writes:

Se usiamo l'italiano, scriviamo "d'accordo" con l'apostrofo :-)
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 a écrit dans le message news:
an1h3a$cpf$1...@serv1.albacom.net...

1) Il toro si ribella e ti incorna se non quoti bene.
2) Il mio Outlook express e' in versione francese, abitando io a Parigi, per
cui le repliche sono scritte automaticamente in linguaggio gallico. In
compenso io scrivo in italiano.
3) L' 'itagliano' va usato bene, altrimenti non ci possiamo mettere
'daccordo'.
Alla prossima quotation
Maurus

Mi arrendo! Chiedo pietą e mi rimetto alla Vostra clemenza!
Newsgroup: it.comp.lang.c++
Titolo: Banale not bit a bit

Salve,
ho questo banale dubbio: ma il not bit a bit che operazione compie?
Cioč
come mai ~4 diventa -5?
A livello di bit cosa accade? Potreste farmi un'esempio?
Grazie
--
Luigi
--
void f (OS x) {while (x.getbugs() > 0); destroy(earth);};
f (windows); // Meno male!

Scusate,
non mi serve più... ho dimenticato il msg in posta in uscita ed è partito :(


Newsgroup: it.comp.lang.c++
Titolo: Qualcuno conosce ADS o ARX

Sono un programmatore AutoLisp ormai stanco di parentesi e programmazione
non ad oggetti; ho intezione di passare al C o C++ per utilizzare ADS o ARX
(con la R.14 di AutoCad è possibili utilizzare anche il VisualARX con VC++
5.0) ma oltre a non conoscere nessuno dei 2 linguaggi non conosco nemmeno
il modo per integrare il C nell'AutoCAD; sarei lieto di avere qualsiasi
tipo di notizie a riguardo; 
Filippi Davide 
EMail : <Filip...@CTrade.it>


Io utilizzo Visual C++ v. 4.2b di Microsoft per creare gli eseguibili
ARX. Nel file acaddrv.hlp e acadarx.hlp nella directory help di autocad
troverai buone informazioni per iniziare a lavorare con gli arx.
Ritengo più semplice la programmazione in C rispetto a quella in Visual
Basic in ambiente Autocad, quindi condivido la tua scelta. Tieni
presente che ci sono ottimi esempi già pronti nella cartella arx (o ads)
di autocad, inizia con quelli.
Se hai problemi puoi contattarmi anche per e-mail

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

qualcuno mi suggerisce alcuni titoli di manuali (cartacei) validi
che trattino di C++ e/o visual C++ ?
grazie 

Per il C++ vedi le FAQ del newsgroup su 
www.programmazione.it
; per VC++
chiedi su un newsgroup appropriato (ad es. it.comp.programmare.win32).
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Sulla distruzione di un oggetto.

Sto studiando il C++, partendo da una solida base di C
1)Stavo affrontando la creazione di oggetti data la
   definizione/dichiarazione di una classe.
Mi chiedo se un'istanza di una classe puo' all'interno di un suo metodo
chiamare il proprio distruttore.
Scenario:
A e' un'istanza di una classe SampleClass
A.foo(){
-alloca una nuova istanza di SampleClass ed eventualmente la inizializza
-chiama il distruttore per l'istanza A.
}
Cio' e' corretto dal punto di vista semantico?
Ringrazio fin da ora
MT

 Cio' e' corretto dal punto di vista semantico?
Ci sono modi per approssimare quello che descrivi, ma tendenzialmente
sono storture che portano a codice poco solido.
Ciao,
Nicola

 MT
Ho provato a richiamarlo tramite il puntatore this e funziona.
Saluti

 ha scritto nel messaggio
news:PWoj8.57273$_u5.1...@news1.tin.it...


 allocato sull'heap
non so se quello che voglio sapere io, che comunque ha a che fare con
quest'argomento, c'entra con la tua risposta.
premessa:
io vorrei distruggere un oggetto dopo averlo usato, perchè mi impegna memoria.
se uscissi da una funzione in cui era dichiarato l'oggetto, partirebbe
automaticamente il distruttore,
ma se l'oggetto è dichiarato nel main il distruttore non parte finquando non
esco dal main. giusto?
domanda:
come posso fare finta che il mio oggetto sia morto? (e quindi forzare il
distruttore a partire?)
va bene quello che tu hai risposto a MarcoT?
(ma delete va dichiarato da qualche parte?)
grazie ciao

 (ma delete va dichiarato da qualche parte?)
Ora che ho capito meglio, t'avviso che, richiamando direttamente il
distruttore c'è il rischio di piantare tutto, senza liberare memoria, a
seconda dell'implementazione dell'oggetto.
Ciò che intendi può essere attuato in due maniere:
1)Unwind dello stack: dichiari la variabile in un blocco al tremine del
quale essa verrà distrutta.
int main(int, char *[])
{
    oggetto obj; //questa variabile terminerà col programma
    //...
    {//inizio blocco
        oggetto og; //il costruttore viene richiamato
        //...
    }//og viene rimosso dallo stack ed il distruttore richiamato
automaticamente
    return 0;
}
2)Gli operatori di allocazione dinamica del C++: new e delete. Le versioni
fornite dal compilatore non devono essere dichiarate. Con new allochi
memoria, con delete...indovina un po'?
int main(int, char *[])
{
    oggetto *p=new oggetto; //new richiama il costruttore...
    p->use();
    delete p; //...delete il distruttore.
    return 0;
}
Ti risparmio il controllo delle eccezioni che new potrebbe lanciare in caso
di memoria insufficiente.
C'è da aggiungere che l'utilizzo di memoria dinamica può causare overhead ed
è meno veloce dello stack.
Scusami se non sono stato chiaro.
Saluti

 Saluti
  ciao

 
Perfetto, non mi interssava tanto l'eleganza e la robustezza, ma
sapere se e' lecito o no.
Grazie
Newsgroup: it.comp.lang.c++
Titolo: per favore aiutatemi...

Scusate se posto ncora questo messaggi ma il tempo per me stringe.....devo
affrontare una prova di C++
il problema è questo:
con la funzione fscanf come posso leggere stringhe in cui sono presenti
spazi e ritorno a capo....
esempio....
in un  file di testo cosi strutturato
pippo
anco ra
albe ro
voglio che mi legga ad ogni fscanf
pippo
ancora
albero
devo usare      fscanf(file," %[^\t........]s",stringa);

 albero
Questo non e' C++, ma C.  Farai una grande impressione sul tuo
professore col seguente programma; attento che dovrai essere in grado
di spiegare come funziona...  in ogni particolare...
MLO 42 $ cat foo.cxx
#include <string>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cctype>
#undef isspace
int main() {
  std::string s;
  std::ifstream is("uffa.txt");
  while (std::getline(is, s)) {
    std::cout << "s = \"" << s;
    s.erase(std::remove_if(s.begin(), s.end(), isspace), s.end());
    std::cout << "\" --> \"" << s << '\"' << std::endl;
  }
  return 0;
}
MLO 43 $ g++ -ansi -Wall -o foo foo.cxx && ./foo
s = "abcdef" --> "abcdef"
s = "   abc  de f" --> "abcdef"
s = "ac cde   f     " --> "accdef"
s = "   abcde  f  " --> "abcdef"
s = "" --> ""
MLO 44 $
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 stringe.....devo affrontare una prova di C++
Non č che non ti si voglia aiutare, ma considera che leggere l'input 
con 'fscanf' č tipico del C piů che del C++ ...
Prova su it.comp.lang.C, sicuramente avrai piů fortuna.
-- 
Ciao, Marvin
Newsgroup: it.comp.lang.c++
Titolo: Implementazione c++ in assembler (g++)

	Salve a tutti. Per motivi di studio sto cercando una documentazione che
parli di come vengono tradotti dal g++ alcuni aspetti del C++ in
assembler (piattaforma intel x86). Non ho trovato nulla nemmeno sul sito
della gnu. Sono pirla io o invece e' effettivamente documentazione
difficile da trovare?
	Chiaramente male che vada mi ricavero' queste info tramite "reverse
engineering" dell'output assembler o addirittura andandomi a leggere i
sorgenti del g++ (l'ho detto per pararmi queste risposte ^__^), ma prima
speravo di trovare un documento che mi indirizzasse un po'.
	Inoltre a quanto ho capito i compilatori del gcc traducono in assembler
dall'RTL, nel qual caso il problema si sposta a trovare documentazione
fra le corrispondenze C++/RTL.
	Grazie a tutti
_dave_

 prima speravo di trovare un documento che mi indirizzasse un po'.
nel caso, dai un bel g++ <ottimizzazioni> file.cc -S -dp -A -o 
prova.assembler
-- 
#include <stdio.h>/* (C) BW2K+2 This code is released under GPL 2+ */
int main(void){char c[]={98,108,97,107,119,111,108,102,64,116,105,
115,99,97,108,105,46,105,116,32,119,101,98,46,116,105,115,99,97,108,
105,46,105,116,47,98,108,97,107,119,111,108,102,0};printf("%s\n",c);}
Newsgroup: it.comp.lang.c++
Titolo: Builder e ADO

Sono uno sviluppatore visual basic (non mi vogliate male) e utilizzo il
linguaggio di MS per sviluppare software di gestione database utilizzando
come interfaccia appunto ADO per l'accesso ai dati.
Dato che oltre il lavoro la mia passione č quella di imparare ad usare il
C++ builder per sviluppare le mie applicazioni, vorrei conoscere la
procedura per interfacciare un db di access tramite odbc e mostrarne il
contenuto in una datagrid su un form di builder. Dato che questa č la base
per iniziare i miei studi sarebbero molto gradite alcune righe di codice per
dettagliare meglio la procedura.
ringrazio tutto il news che gią in passato mi ha aiutato.
Daniele

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

Newsgroup: it.comp.lang.c++
Titolo: Problema con DWORD e puntatori

Dovrei leggere 32 byte da un file a una variabile, qual è il modo
migliore ?
DWORD MyDWord, *pDW;
...
fread(pDW, sizeof(MyDWord), 1, file);
MyDWord = *pDW;
...
Questo è quanto ho partorito, ma mi sembra sbagliato anche perchè come
inizializzo il puntatore ?
Grazie in anticipo
--
Mav Rossi

 inizializzo il puntatore ?
devi allocare la memoria.
es:
DWORD *pDw = new DWORD[32];
fread(pDw, 32, 1, file);
// dopo che hai usato pDw:
delete pDw;

 ha scritto nel messaggio
news:3b0be795...@news.tin.it...


Dovrei leggere 32 byte da un file a una variabile
Forse intendi dire 32 bit in una variabile, perchč 32 byte non ci
stanno in nessun tipo base...
Luc.

On Thu, 24 May 2001 08:39:37 +0200, Luc <TOGL...@katamail.com-TOGLI>
wrote:

Ops, si sono 32 bit...
--
Mav Rossi

Ops, si sono 32 bit...
DWORD MyDWord;
...
fread(&MyDWord, sizeof(MyDWord), 1, file);
...
ecc...
Luc
Newsgroup: it.comp.lang.c++
Titolo: problema con fstream

Provate questo semplice spezzone di programma:
 char temps[50], temps1[50], tempc;
 ofstream fout;
 ifstream fin;
 strcpy(temps,"d:\\prova3\\verde.bmp");
 strcpy(temps1,"d:\\prova3\\verdecopia.bmp");
 fin.open(temps,ios::in,ios::binary);
 fout.open(temps1,ios::out,ios::binary);
 while (!fin.eof()) {
    fin.get(tempc);
   fout.put(tempc); }
 fin.close();
 fout.close();
Dovrebbe fare la copia del file. Ma mi sapete spiegare perchè il file di
uscita è 1 byte + lungo del secondo? Cosa sbaglio?
Aprendo i file con un editor esadecimale si scopre che verdecopia.bmp in
fondo al file cè un FF che non cè nel file di origine.
Grazie per l'attenzione,
Alex
--
------------------
email: el_co...@TOGLIQUESTOlibero.it
icq: 132581870
------------------

 uscita è 1 byte + lungo del secondo? Cosa sbaglio?
Quando l'istruzione fin.get(tempc) arriva alla fine del file segnala la
condizione di eof, che però viene testata DOPO aver già scritto in fout il
valore tempc che ovviamente, essendo fallita la precedente get(), è
indefinito. Il metodo basic_fstream::get() restituisce un riferimento allo
stesso stream, che può essere convertito automaticamente in void* risultando
in un puntatore nullo se e solo se la condizione di fail() sullo stream è
vera. Tale condizione, in questo caso, viene impostata da get() quando viene
incontrato l'end-of-file. Quindi puoi usare un ciclo come il seguente:
while (fin.get(tempc)) fout.put(tempc);
invece di quello che hai scritto tu.
Saluti,
Marco

Grazie mille per l'aiuto!
Alex
Newsgroup: it.comp.lang.c++
Titolo: classe come parametro del costruttore

ciao ragazzi!
ho un'altra domanda circa le classi;
ho una classe di cui il costruttore accetta come parametro una classe
e questa classe la *devo* passare per riferimento;
ho pensato a 2 soluzioni... sono corrette entrambe secondo voi?
perchè dovrei preferire l'una all'altra?
// SOLUZIONE_1
#include "stdafx.h"
class io_port{
public:
void open();
void close();
int write(char buff[],int size);
};
void io_port::open(){}
void io_port::close(){}
int io_port::write(char buff[],int size){return 0;}
class myClass{
int index;
io_port *working_port;
public:
myClass(io_port *p1);
void run();
};
myClass::myClass(io_port *p1){
index=0;
working_port=p1;
};
void myClass::run(){
working_port->write("123",3);
};
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR
lpCmdLine,int nCmdShow){
	io_port pippo;
	myClass pluto(&pippo);
	pippo.open();
	pluto.run();
	pippo.close();
	return 0;
}
// SOLUZIONE_2
#include "stdafx.h"
class io_port{
public:
void open();
void close();
int write(char buff[],int size);
};
void io_port::open(){}
void io_port::close(){}
int io_port::write(char buff[],int size){return 0;}
class myClass{
int index;
io_port working_port;
public:
myClass(io_port &p1);
void run();
};
myClass::myClass(io_port &p1){
index=0;
working_port=p1;
};
void myClass::run(){
working_port.write("123",3);
};
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR
lpCmdLine,int nCmdShow){
	io_port pippo;
	myClass pluto(pippo);
	pippo.open();
	pluto.run();
	pippo.close();
	return 0;
}

 perchï¿œ dovrei preferire l'una all'altra?
Ti avevo giï¿œ risposto: non ci sono differenze, passando il puntatore o 
il reference passi sempre un indirizzo.
http://groups.google.it/group/it.comp.lang.c++/msg/2a75039b41fc8f49
ciao
-- 
Morde

 
http://groups.google.it/group/it.comp.lang.c++/msg/2a75039b41fc8f49
hai ragione, non avevo ricondotto il problema esposto a quello del
link che riporti;
in effetti è la stessa cosa
ciao e
grazie!

 in effetti � la stessa cosa
Attenzione che i due esempi, al di l� delle differenze tra reference e 
puntatori, non sono equivalenti.
Nel caso in cui usi i reference viene comunque fatta una *copia* 
dell'oggetto io_port che passi al costruttore di myClass.
Se vuoi evitare la copia working_port dovrebbe essere a sua volta un 
reference. A questo punto devi per� essere sicuro che l'oggetto pippo, 
del quale passi il reference a pluto nel main, abbia un lifetime 
maggiore di pluto.
Ciao.

 dell'oggetto io_port che passi al costruttore di myClass.
quindi la funzione lavora sulla copia dell'oggetto e SOLO all'uscita
aggiorna l'oggetto globale con le modifiche fatte sulla copia?
grazie
-ice-

 aggiorna l'oggetto globale con le modifiche fatte sulla copia?
No, l'oggetto pippo dichiarato nel main e che passi al costruttore 
dell'oggetto pluto *non* viene mai aggiornato con le modifiche 
effettuate alla copia. Qualunque operazione effettuata dall'oggetto 
pluto viene effettuata solo su working_port.
Supponendo che la copia degli oggetti di tipo io_port sia una "deep 
copy", pippo rimane inalterato.
Ciao.
Newsgroup: it.comp.lang.c++
Titolo: Namespaces

Qualcuno mi può sintetizzare il significato dei namespaces in Visual C++ ?
Due domande:
1) Il namespace "std" a cosa serve?
2) Si tratta di C++ standard o di un'estensione Microsoft?
Grazie
berga

 2) Si tratta di C++ standard o di un'estensione Microsoft?
Perfettamente standard.
Alex

2) Si tratta di C++ standard o di un'estensione Microsoft?
I namespace sono stati introdotti dal comitato ansi/iso per
la standard del C++. Il loro scopo e` facilitare il lavoro
di squadra fornendo uno strumento che riduca le possibilita`
di conflitti tra identificatori uguali.
Un namespace in pratica non e` altro che un contenitore di nomi,
in particolare il namespace std e` quello che racchiude
la libreria standard del C++.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: Copiatura di file

Salve a tutti,
scusate la domanda assai fessa,
esiste una funzione che permetta la copiatura dei file senza richiameare
programmi esterni?
Grazie
Francesco Aruta

programmi esterni?
Certo, e` uno degli overload di std::ofstream::operator<<(), quello che
accetta come argomento un puntatore a std::streambuf; questo copia
tutto un file in un altro.  Per fare un esempio semplice semplice:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 ifstream fin("part.fil",ios_base::in|ios_base::binary);
 if(!fin) {
  cerr << "Cannot open part.fil" << endl;
  return 1;
 }
 ofstream fou("arriv.fil",ios_base::out|ios_base::binary);
 if(!fou) {
  cerr << "Cannot open arriv.fil" << endl;
  return 1;
 }
 fou << fin.rdbuf();    // qui si fa tutto il lavoro
 return 0;
}
Questo programma copia part.fil in arriv.fil.  Tutto
il testo del programma e` dedicato a "lavoro
preparatorio" (apertura file, diagnostica errori);
l'unica riga che lavora davvero e` quella cosi`
commentata, che appunto invoca la funzione da
te ricercata.
Naturalmente, questo esempio, come un po' tutti
quelli che io do, richiede un compilatore decentemente
aderente allo standard, come ad esempio VC++ 5 o
Borland C++ Builder 3.  Comunque qualcosa di questo
tipo probabilmente ci sara` anche con compilatori che
siano vecchi catorci...!-)
Alex
Newsgroup: it.comp.lang.c++
Titolo: DOWNLOAD PROGRAMMA

Qualcuno mi sa indicare un sito internet dove scaricare l'intero programma
c++? Anche a pagamento.
Grazie mille
Anna

 c++?
Cos'è il programma c++?
-- 
Luc.

 c++? Anche a pagamento.
Il C++ non è un programma, è un linguaggio di programmazione. Forse ti
riferisci ad un *compilatore* C++, nel qual caso sappi che ne esistono
diversi, ognuno con diverse caratteristiche. Ovviamente dipende anche dal
sistema operativo che utilizzi, un compilatore per Windows non sarà certo
eseguibile direttamente su Linux (a meno che non sia fatto in Java :-) ...
Comunque, due buone scelte possono essere:
    per Linux: 
http://gcc.gnu.org
    per Windows: 
http://www.bloodshed.net/devcpp.html
Quest'ultimo è un vero e proprio ambiente di sviluppo, che usa come
compilatore una versione di gcc portata su Windows.
Ciao,
    Marco

 c++? Anche a pagamento.
ftp://ftp.gnu.org/pub/gnu/gcc
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it
Newsgroup: it.comp.lang.c++
Titolo: Liste in C AIUTO

Qualcuno sa indicarmi il codice per l'implementazione di una lista
concatenata in C o dove trovare aiuto.
Vi prego sono disperato.
Aiutatemi.

 Vi prego sono disperato.
Se programmi in C++, il codice per l'implementazione che
desideri si trova nella tua libreria standard; ti basta un
    #include <list>
e puoi usare a tuo piacere std::list<int>, eccetera.
Se invece usi altri linguaggi, ti consiglio di non postare su
di un gruppo relativo al linguaggio C++, bensi`, invece, sul
gruppo relativo al linguaggio di tuo interesse, come, ad
esempio, it.comp.lang.c per il linguaggio C, eccetera.
Alex

 Vi prego sono disperato.
Non è tanto il codice, ma la logica della lista che ti serve.
Questo se vuoi costruirtela da te!!!
Devi intando stabilire la logica della lista, se ti servono anche solo
queste nozioni dimmelo che ti spiego come farla (il codice poi te lo scrivi
da solo).
--
| /
| \Byte - Andrea Briganti
E-Mail 
kbyt...@freemail.it
ICQ 40872731

Newsgroup: it.comp.lang.c++
Titolo: Identificatori preceduti da underscore

Se non sbaglio ho letto nel C++ Primer che l'autore usa identificatori
preceduti da underscore per i data members privati, ora sto leggendo
Thinking in C++ e dice che gli identificatori preceduti da underscore
sono riservati :-|, com'e' questa storia? Io sapevo che le macro define
erano riservate, ora anche gli identificatori?
-- 
Saluti,
 Francesco Cipriani - 
http://village.flashnet.it/~rm03703

 sono riservati :-|, com'e' questa storia?
Gli identificatori riservati sono solo quelli che iniziano almeno con un
underscore e con una lettera maiuscola.
EMG

erano riservate, ora anche gli identificatori?
Dallo standard (17.4.3.1.2 Global names) risulta che:
- I nomi che contengono due underscore o iniziano con un underscore
seguito da una lettera maiuscola sono riservari (sempre ?)
- I nomi che iniziano con un underscore sono riservati *solo* nello
namespace globale
I membri (privati e non) e anche le variabili locali possono quindi
avere nomi preceduti da underscore (ma con la prima lettera minuscola
?) e nasconderanno gli eventuali identificatori omonimi globali (come
per le normali var globali), che in generale non e' un problema (gli
identificatori riversati non devono essere usati).
IMHO, e' una pratica da evitare, potrebbe generare confusione in chi
legge il codice.
Saluti, Alberto.

sono riservati :-|, com'e' questa storia?
Se non erro tutti i nomi inizianti per underscore singolo sono
riservati dallo standard. Lo standard dice anche che quelli inizianti
per doppio underscore sono riservati alle implementazioni.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Sempre sul problemino...

vanno da myarray[0] a myarray[4].
.. ma scusa, io avevo messo apposta l'operatore  "--" ad  "i" in modo che
scalasse subito di uno prima di iniziare il ciclo, quindi come se fosse 4
.......
(i=5; i >= 0 ; --i)                   =====>  i diventerebbe 4
o no??

...

La 3^ espressione dell'istruzione for viene valutata alla fine di ogni
ciclo.
Tieni conto che 'for(exp1; exp2; exp3) BODY;' corrisponde a:
	exp1;
	while(exp2)
	  {
	    BODY;
	    exp3;
	  }
e quindi:
	i=5;
	while(i>=0)
	  {
	    ...
	    --i;
	  }
In questo caso post/pre decremento/incremento non fanno differenza.

   }
Corrisponde QUASI... c'e` una differenza se BODY comprende
un continue: nella forma-while, il continue "salterebbe" expr3,
mentre, nella forma-for, l'exp3 viene invece valutato anche in
caso di continue.  Giusto per completezza...
Alex
Newsgroup: it.comp.lang.c++
Titolo: (pt. a) classe come valore di ritorno

ciao a tutti
sto facendo una classe che ha un metodo che deve restituire il puntatore a 
una nuova istanza della classe.
ecco un esempio:
class BOO
{
    BOO* getBOOCopy()
    {
        BOO tmp_b;
        tmp_b.blablabla = ...;
        return &tmp_b;
    }
};
ma quando restituisco il puntatore, se non erro, tmp_b esce dallo scope e 
viene eliminato.
cosa mi consigliate?
posso scrivere:
class BOO {
    BOO getBOOCopy() {
        BOO b;
        return b;
    }
}
o è troppo pesante?
grazie
ciao
dd

 cosa mi consigliate?
Non capisco il problema; se vuoi un puntatore ad una nuova istanza di
BOO che c'e' di male nell'usare uno statement "new BOO"?  Perche' un
metodo?
-- 
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.

metodo?
uff!... :-)
ho sbagliato a fare l'esempio ...
ecco un nuovo esempio:
class IMAGE
{
    	IMAGE getMask()
    	{
    	    	IMAGE tmp;
    	    	tmp.set...(...);
    	    	return tmp;
    	}
};
capuito l'esempio?
vorrei sapere qual'è il modo migliore per passare una classe (o il 
puntatore, o il reference che non ho capito cosa è) come valore di ritorno.
forse dovrei scrivere:
IMAGE& IMAGE::getMask() ?
ciao
dd

 IMAGE& IMAGE::getMask() ?
No, cosě ritorneresti un reference ad un oggetto locale, il che č *male*.
Massimo

Se vuoi un nuovo oggetto, allocalo con new e ritorna un puntatore:
[cut]
ci avevo pensato, però avrei voluto fare in modo che l'eliminazione 
dell'oggetto fosse automatica, all'uscita dello scope.
cmq è l'unica cosa che posso fare :)) quindi thanks anyway ;)
ciao
dd

 o è troppo pesante?
questo e' corretto, la pesantezza dipende dalla classe cha hai!
Queste altre 2 soluzioni:
Classica:
class BOO {
     BOO* getBOOCopy() {
         BOO* b = new BOO();
         return b;
     }
}
in questo modo pero' hai il problema che l'utilizzatore che chiama
getBOOCopy() deve poi ricordarsi di fare una delete! e questo a me non
piace.... nel caso tu voglia fare cosi' documentalo x bene!!!
Cmq,io avevo il tuo stesso problema ( come tutti penso! :-) e mi e' stato
consigliato  di usare la classe STL auto_ptr<T> che agisce come un puntatore
"intelligente" alla classe T. la sintassi e' la seguente:
auto_ptr<BOO> getBOOCopy() /*const?*/{
  auto_ptr<BOO> temp( new BOO(/*argomenti costruttore*/) );
  temp.bla();/*nota che temp e' un oggetto e non va dereferenziato!*/
  return temp;
}
in questo caso la return fa si una copia, ma della classe auto_ptr che e'
leggera (in pratica un puntatore)...
IMHO e' il metodo migliore....
--
Ciao by Beppe

 dell'oggetto fosse automatica, all'uscita dello scope.
Allora usa un auto_ptr, no?  Anche in quello non c'e' nulla di male.

Newsgroup: it.comp.lang.c++
Titolo: importare dll in borland c++ builder3.0

ho provato a capire come si importano le dll esterne nel borland c++ builder
3.0 ma non ci sono riuscito
avrei da chiedere le seguenti domande:
1) é giusto convertire la dll in file lib ?
2)come faccio a vedere le funzioni contenute nella dll?
Io vorrei implementare la zip.dll
ringrazio anticipatamente chi mi rispondera..

...


Io vorrei implementare la zip.dll
Dovresti procurarti il file header.


Newsgroup: it.comp.lang.c++
Titolo: Chi di voi sviluppa per Windows CE?

Sono nuovo del newsgroup. Sto reperendo informazioni per un nuovo progetto che
intendo iniziare.
Ho programmato per parecchi anni in C (DOS e altre cose meno convenzionali), settore
automazione industriale. Ora ho fatto il gran passo, passando al mondo Windows.
Inizialmente pensavo a NT, ma ora sto valutando anche CE. Il problema e' che e' un
po' difficile reperire informazioni 'disinteressate'.
Qualcuno di voi sviluppa in C++ per questo ambiente? Che supporto si ha? Funziona
bene (a me interessa un multitasking serio...) o e' come W95? Mi devo fidare o e'
meglio che rimanga su NT dove si ha maggiore base di sviluppo?
Grazie, accetto volentieri anche post privati.
--
Eliminare 'TOGLI' dall'indirizzo per rispondermi!

po' difficile reperire informazioni 'disinteressate'.
anch'io lavoro nel settore dell'automazione industriale anche se per
lo piu' facciamo programmi di supervisione. Non capisco bene come fai
a considerare WCE un'alternativa a NT, oggi come oggi WCE non e'
pensato per i desktop. WCE ha un'architettura estremamente modulare e
ogni OEM deve creare una sua versione custom e fornirla con le sue
macchine, non puoi andare in negozio, comprarti WCE e installarlo al
posto di win95 o di NT. Comunque in linea di massima WCE e' piu'
simile ad NT che a win95, non l'ho trovato scritto in modo esplicito,
ma analizzandone le caratteristiche si vede abbastanza chiaramente che
la parentela con NT e' molto stretta, ad esempio gestisce solo
stringhe unicode ed e' stato scritto in modo da essere facilmente
portato su diverse architetture hardware.
Qualche mese fa e' uscito un articolo molto interessante su MSJ dove
spiegava abbastanza dettagliatamente l'architettura di WCE.
Gianpaolo Bottin
- Live Long and Prosper -

spiegava abbastanza dettagliatamente l'architettura di WCE.
Ho trovato anche parecchie cose sul sito MS, ma ovviamente sono 'di parte'. Cercavo,
se possibile, qualche 'dritta' da qualche sviluppatore.
Ma vedo che la base di utilizzo non esiste ancora...
Io sono sempre qua... il mio progetto e' ancora in fase di definizione... non siete
in ritardo!!!
Ciao
Pablon

Ma vedo che la base di utilizzo non esiste ancora...
beh, mi pare un po' presto per cercare una base di utilizzatori... la
versione 2.0 e' uscita da poco tempo e solo ora iniziano a trovarsi
anche in Italia palmtop e handhelp con WCE. 

Newsgroup: it.comp.lang.c++
Titolo: Vettori: iteratori e inserimenti

Se ho un vettore, dopo un'operazione di inserimento gli iteratori successivi 
alla posizione di inserimento diventano invalidi?
Ad es.: diciamo di avere un vettore di int, e di voler inserire uno 0 prima 
di ogni valore 1. Non posso fare una cosi':
for (vector<int>::iterator itr = myVector.begin(); itr != myVector.end(); 
++itr) {
    if (*itr == 1)
        myVector.insert(itr, 0);
}
giusto?
Come si fa? Devo scorrere, inserire lo 0 al primo 1, e poi ripartire da capo 
col for, ottenendo un nuovo iteratore da myVector.begin() ?
Thx,
Pleg
PS: al momento non mi interessa l'inefficienza dell'inserimento in mezzo al 
vettore, il vettore e' piccolo e l'operazione infrequente. 

Forse una soluzione migliore e' svuotare il vettore in uno stack, 
controllare e aggiungere i valori durante il trasferimento, e poi risvuotare 
lo stack indietro nel vettore...?
Pleg 

 col for, ottenendo un nuovo iteratore da myVector.begin() ?
La insert restituisce un iteratore che punta all'elemento appena inserito.
quindi basta scrivere:
if (*itr == 1)
     itr = myVector.insert(itr, 0) + 1;
Ciao.

Grazie!
Pleg
Newsgroup: it.comp.lang.c++
Titolo: header per DLL non-MFC

>>>> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<<<<<
<<<<<<<<<<< 
Davide_...@RCM.inet.it
 >>>>>>>>>>>>>

Ciao,
per creare una DLL che non usa MFC , quindi il SDK, devi includere il file
"windows.h" e non "afxwin.h"
Il programma per conoscere i nomi delle funzioni exportate da una
DLL è DUMPBIN eseguito passandogli come parametro "/export" ed il nome della
DLL
Ciao.

funzioni esportate da una dll qualsiasi, sapete come si chiama?
dumpbin (col parametro /EXPORTS; con altri parametri ti da` tante altre
e diverse info carine).  E` nel directory VC\BIN.
Alex

>PGP public key avaiable: do "finger 
xywza...@helen.cli.di.unipi.it
"<<
fingerprint: D1E7 641F 1821 74BA  1836 9B50 B37C 5FA3

templete di una DLL e il suo utilizzo in un programma.
Cosa intendi per "templete"?  Anche leggendolo come "template",
non capisco cosa intendi.  Le DLL e i template hanno poco o nulla
da spartire tra loro.
Alex

da spartire tra loro.
Non mi riferivo ai template del C++, volevo dire modello, schema,
generale, scheletro, armadio, amante, tresca, triangolo.... :)
Scusate, non mi ero espresso bene.


generale, scheletro, armadio, amante, tresca, triangolo.... :)
"Armadio"?  Lo schema generale di una DLL e il suo uso in Win32 e`:
-- scrivo delle funzioni,
-- le esporto con l'attributo __declspec(dllexport) o un file PIPPO.DEF
-- compilo e linko (con /DLL) facendo PIPPO.DLL (e PIPPO.LIB)
-- un altro programma puo` essere linkato con PIPPO.LIB (e usare
    le funzioni di PIPPO.DLL come se PIPPO.LIB le contenesse, purche`
    al momento del run del programma PIPPO.DLL sia in path, ecc),
-- oppure caricare esplicitamente PIPPO.DLL con LoadLibrary e
    poi cercare gli indirizzi delle funzioni con GetProcAddress
ecc ecc.
E` questo che intendi, l'insieme delle informazioni basilari su come si
puo` costruire e usare una DLL in Win32...?
Alex

> 
http://www.geocities.com/sunsetstrip/stage/7787
 <<
<<<<<<<<<<<< _
Metal...@iol.it
 >>>>>>>>>>>>>>
(remove antispamming asterisks for mailbox reply)

puo` costruire e usare una DLL in Win32...?
Si', esatto!!!
Avrei solo aggiunto il sorgente completo di una dll con le funzioni.
int pippo(int i) {return i;};
int pluto(int i) {return i;};
e il sorgente completo del programma che la usa sia senza che con
LoadLibrary. Naturalmente per rendere le cose immediate ci vorrebbe
un'applicazione console.
Ti mando un grazie cumulativo :)


se ne farebbe qualcosa del file .lib?
...non he ho idea, non conoscendo Delphi, se esso possa linkare
e/o caricare dinamicamente librerie di un tipo o dell'altro, ma certo
troverai delucidazioni in merito sul gruppo dove di Delphi si parla.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Shutdown

Ciao a tutti,
sto sviluppando una piccola applicazione in C++ Builder che mi permetta di
spegnere il pc ad una determinata ora preimpostata. La macchina su cui sto
facendo le prove ha installato Win2000.
Ho provato ad utilizzare la chiamata alla API ExitWindowsEx:
  {
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
     // Get a token for this process.
    OpenProcessToken(GetCurrentProcess(),
          TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
     // Get the LUID for the shutdown privilege.
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1;  // one privilege to set
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    // Get the shutdown privilege for this process.
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
        (PTOKEN_PRIVILEGES)NULL, 0);
    // Shut down the system and force all applications to close.
    ExitWindowsEx(EWX_SHUTDOWN | EWX_POWEROFF, 0);
  }
ma con questo codice ottengo l'uscita da windows in uno stato inconsistente
( nel senso che si slogga, ma non si spegne).
Se passo come parametro a ExitWindowsEx anche EWX_FORCE, ottengo la
schermata "Ora si può spegnere il pc....".
Io vorrei che il pc si spegnesse!
Grazie, Zano.

> Qui sei OT. Non si parla di alveari & co. :)
Scusa, hai ragione.
Su quale gruppo mi consigli di postare per questo genere di quesiti?

 Ho provato ad utilizzare la chiamata alla API
Qui sei OT. Non si parla di alveari & co. :) 
-- 
Luc

 Su quale gruppo mi consigli di postare per questo genere di quesiti?
it.comp.programmare.win32
-- 
Luc

Newsgroup: it.comp.lang.c++
Titolo: classi gia' scritte

Ciao a tutti,
sapete se esistono, gia' scritte, classi per i seguenti oggetti:
-vettori e matrici
-quaternioni
-robot (in generale)
-specifici robots (immagino derivati dalla classe sopra ma con qualche
  caratteristica specifica)
-ambienti complessi con oggetti dislocati a piacimento (dove i robot possono
muoversi,
  magari evitandoli!)
Grazie.
--
Tiberio Grasso
e-mail: 
gras...@tecnomare.it

-quaternioni
Ciao
Per questi due dovresti riuscire a trovare online i sorgenti delle Computer
Graphics Gems (l'ultimo volume che io sappia e' il 5 - editore
Addison-Wesley)
Gian Michele Bertoni
--
Home Page: 
http://space.tin.it/computer/gbertoni

Newsgroup: it.comp.lang.c++
Titolo: fstream binary

con i file binary, possono dare problemi salvataggi del tipo
ostr << var1 << '\t' << var2 << endl;
ostr << var3 << endl;
e
istr >> var1 >> var2 >> var3;
ovvero visto che con il formato testo, i caratteri ' ','\t',endl vengono
"saltati" in lettura, mi chiedo nel caso di file binari possono dare
problemi ?
grazie

Ok passo alla 2nda domanda ;)
Com'è possibile dal ofstream sapere se è stato aperto in binario o meno ?
openmode mi pare sia una proprietà privata.
Grazie
Newsgroup: it.comp.lang.c++
Titolo: Help...albero ricorsivo

Devo implementare un albero costruito in maniera ricorsiva...qualcuno può  
aiutarmi a reperire materiale su questa struttura dati? Mi interessano la  
sua definizione e le funzioni per poterlo "manipolare".
Ringrazio in anticipo.
S.

el cholo ha scritto:

Hai provato a scrivere su google due o tre parole come
albero ricorsivo C++
(separate da uno spazio) lo hai fatto?

"recursive tree" filetype:cc
http://www.google.it/search?hl=it&q=%22recursive+tree%22+filetype:cc&spell=1
Newsgroup: it.comp.lang.c++
Titolo: Manuale di C++

C'è su Internet un manuale di base gratuito sul C++?.
Rispondere in e-mail.
Grazie.

Rispondere in e-mail.
No, non e` questo lo spirito del NG.
-- 
Roberto Gerola
Email: 
robert...@penguinpowered.com
WWW: 
http://www.penguinpowered.com/~The_Cpp_Compass


http://www.penguinpowered.com/~The_Cpp_Compass/download/tuthtml.tgz


Newsgroup: it.comp.lang.c++
Titolo: Manuali aggiuntivi Borland C++

Sono utili i manuali (aggiuntivi) Guida utente, Guida alla programmazione in
C++ del Borland C++ 5? Io uso il compilatore in facoltà e mi servirebbero i
manuali. Mi conviene spendere le 129000+IVA di questi manuali secondo voi?
Grazie.

...


 esiste una sola riga su OWL!!
Io farei lo stesso, investirei quella cifra per comprarmi uno o due manuali
sul C++, poiche' il manuale Borland e le Guide in linea fanno proprio
ridere in tal senso. Che vi sia bisogno di una ottima conoscenza del
linguaggio questo mi sembra il minimo, ma purtroppo e' lo standard in tutti
i compilatori. Una volta la Borland dava un file di Help come inizio per il
C++, e per Tips'n'Tricks sul C++. Inoltre vi era una videocassetta su
Object Windows (se non erro). Ora vi e' solo il vuoto, e i due manuali
hanno veramente poco da dire poiche' replicati ampiamente nei file di
Guida.
Che OWL sia sull'help in linea questo e' un bene, poiche' in effetti mi
risulta un po' difficile imparare quel macello di classi senza avere il
compilatore a portata di mano. Qui non stiamo mica studiando il Q-Basic,
per cui basta anche un manualetto stringato, una penna, e tanto codice
scritto su un foglio di carta!!
Comunque se volete vi sono anche i manuali per OWL, solo che costano quasi
200 mila lire. Provate sul sito italiano della Borland per maggiori
informazioni.
Bye.
-- 
Jo Parrello - OWL/C++ Programmer (
jopa...@tin.it
)
http://space.tin.it/computer/giparrel

Newsgroup: it.comp.lang.c++
Titolo: Deallocazione riferimento a oggetto allocato dinamicamente

Ciao a tutti,
  volevo sapere se nell'esempio sotto il riferimento ad un
oggetto allocato dinamicamente viene distrutto correttamente
o meno.
Grazie.
CPippo &CProva::GetPippo()
{
  CPippo *pcPippo = new CPippo();
  return(*pcPippo);
}

}
quanto hai scritto funziona, il problema e` che il compito di
deallocare l'oggetto e` del chiamante e cio` potrebbe creare
problemi:
CProva A;
CPippo B = A. GetPippo(); 
l'oggetto allocato in GetPippo() viene copiato in B, ma non viene poi
deallocato. Cio` provoca chiaramente perdita di memoria.
Paolo
-------------------------------------------
  Paolo Marotta
 
http://web.tiscalinet.it/paolo_marotta/
-------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: List Ctrl (Visual C++)

Ho un problema:
nn riesco a creare una List Control dove i titoli delle colonne stiano su 2
righe!!!
AIUTO!!!
naturalmente lavoro come piattaforma SDK e nn MFC.

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

Newsgroup: it.comp.lang.c++
Titolo: tutorial paolo marotta in un unico file

Salve,
dove potrei trovare il tutorial di paolo marotta sul c++
in un unico file tipo pdf o doc per poterlo stampare + comodamente?
Grazie
Sandro



da nessuna parte... al momento e` disponibile solo in html
(eventualmente in un unico file zippato alla mia home).
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

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

qualcuno mi può spiegare cos'è un "IDE"??
grazie
Davide

qualcuno mi può spiegare cos'è un "IDE"??
Integrated Development Enviroment. Ambiente di Sviluppo Integrato.
Tipicamente è un programma che integra un editor un debugger un 
compilatore (questi ultimi posso essere anche esterni) più altre cose
come generatori di documentazione, esploratori di progetti e così via.
-- 
  _  _ >>Now on Linux<<  _     || ICQ number.................Non lo uso
 | \| |___ _____ ___ ___|_|___ || Home-Page ................Non ce l'ho
 | .` | -_|     | -_|_ -| |_ -||| E-Mail................Non l'avrai mai
 |_|\_|___|_|_|_|___|___|_|___||| Un Nemesis che ha pochi e-contatti ;)

 ha scritto nel messaggio
news:2arsu9.88.ln@Nemesis...


Newsgroup: it.comp.lang.c++
Titolo: Aiuto Visual C++

Ho intenzione di iniziare a programmare in Visual C++ (versione 6.0), quale
manuale, preferibilmente in italiano, mi consigliate ?
Grazie.

Hmmm, il titolo fa pena, però un mio amico s'è trovato bene con "Visual C++
for dummies", ma forse era per l'amico che ho ;-)
--
Diego "1985" Pettenò
per gli spammer la mail è
diego...@hotmail.com
per i messaggi seri è
diego....@tiscalinet.it

for dummies", ma forse era per l'amico che ho ;-)
non e' proprio banalissimo e tratta per il 90% MFC........

 non e' proprio banalissimo e tratta per il 90% MFC........
...che è probabilmente quello che interessa a uno che vuole un libro sul
"Visual C++".
O mi sbaglio?
--
Alessandro Monti

O mi sbaglio?
Tanti prendono un libro su visual c++ per un libro sul c++ .....

 O mi sbaglio?
Spero che ti sbagli, visto che il Visual C++ comprende anche
l'altro eccellente framework "ATL", e tanti altri strumenti ed
estensioni (supporto COM nativo, ad esempio); le MFC sono
forse il 30-40% del "Visual C++", non certo il 90%...
Alex
Newsgroup: it.comp.lang.c++
Titolo: return type copy ctor temporary

Ancora un po' di pazienza e buon cuore... l'esame e' maledettamente
vicino e ho bisogno di chiarezza.
mi spiego una classe d'esempio
#include <iostream.h>
class Stupida{
public:
Stupida(){cout <<"costruttore"<<endl;}
Stupida(const Stupida& objIdiota){cout<<"copy ctor"<<endl;}
~Stupida(){cout<<"distruttore"<<endl;}
};
Stupida f(){
cout<<"entroin f()"<<endl;
Stupida objEmilio;  //involontario, spero che nessuno si offenda
return objEmilio;
}
void main(){
cout <<"main"<<endl;
Stupida cloneEmilio = f();
cout <<"post asegnazione"<<endl;
}
OUTPUT
main
entroin f()
costruttore
copy ctor
distruttore
post asegnazione
distruttore
QUINDI se ho ben compreso(spero...)
entro nella funzione, istanzio objEmilio e lo ritorno,
fatalita' devo usare il valore ritornarto  (temporary , giusto?)
per riempire cloneEmilio (che ancora non esiste), sicche' il
compilatore crea cloneEmilio
usando il copyctor e come arg la temporary della mia funzione.
distrugge l'oggeto istanziato in f e POI esce dalla funzione!
ma allora il temporary l'ha creato da dentro la funzione per poi
uscirne?
Insomma chiritemi le idee dicendomi cosa fa ma soprattutto perche'...


Beh: hai capito bene:
quando entri in f() crei una istanza della classe (objEmilio) e la ritorni:
questa istanza viene utilizzata dal costruttore di copia come argomento per
istanziare cloneEmilio. Il lifetime della variabile ritornata da una
chiamata a f() e`, diciamo, una "riga" di codice (se preferisci un passo del
pointer) e poi viene distrutta. E` per questo che prima costruisci la copia
cloneEmilio e poi vedi la chiamata al distruttore per objEmilio.  Se non
fosse cosi`, cioe` se il distruttore venisse chiamato subito all`uscita
della f() prima della costruzione della copia, non potrebbe funzionare.
In pratica il valore di ritorno di una f() viene fornito e lasciato vivo per
il tempo minimo necessario ad assegnarlo ad una variabile, e poi viene
distrutto.
Tra parentesi, mi sarei aspettato una cosa di questo tipo, dal listato che
hai scritto:
main
entroin f()
costruttore objEmilio
copy ctor tempEmilio
(con argomento objEmilio)
(che effettua la costruzione del valore temporaneo di ritorno(chiamiamolo
tempEmilio), dato che lo ritorni per valore o copia, cioe` Stupida f() e non
per  reference Stupida& f() che sarebbe anche sbagliato, dato che l`oggetto
morirebbe prima di essere ritornato, essendo locale)
distruttore (objEmilio, che essendo locale viene distrutto all`uscita da
f())
copy ctor cloneEmilio
(con argomento tempEmilio)
distruttore tempEmilio
(che non serve piu`)
post asegnazione
distruttore
Vai cosi`, che all`esame li stendi tutti!!!!
Ciaooooo
        Roberto