mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: [OT] - fseek

Scusate per l'OT ma non so dove porre
la domanda:
creo un file binario costituito
da struttre del tipo
struct _st {
    char *cod;
    char *desc;
} st;
Voglio cambiare la desc. di un record, faccio
la ricerca e riesco a trovare il record, per la modifica
----
    fread(&st, sizeof(st), 1, filepointer);
    pos = ftell(filepointer);
    se record trovato
        fseek(filepointer, pos, SEEK_CUR);
        fwrite(&st, sizeof(st), 1, filepointer);
---
IL problema sta nel fatto che mi aggiunge dei record
strani alla fine!!!!
ciao
grazie
tommaso

>strani alla fine!!!!
Non e' che hai aperto il file in append? Devi aprirlo bianrio, read / write.
Antonio

 Non e' che hai aperto il file in append? Devi aprirlo bianrio, read / write.
se non esiste lo apro "w+b" altrimenti "r+b"
ciao

Scusa, ecco la porzione di codice:
la sostituzione va bene solo che mi duplica
il record modificato:
...
 fseek(fp, 0L, SEEK_SET);
 while ((fread(&st, sizeof(st), 1, fp) == 1) && trovato == 0)
 {
  pos = ftell(fp);
  if (!strcmp(codice, st.cod))
  {
   printf("digita nuovo codice\n");
   gets(st.cod);
   printf("digita nuova desc\n");
   gets(st.desc);
   fseek(fp, pos - (long)sizeof(st), SEEK_SET);
   fwrite(&st, sizeof(st), 1, fp);
   printf("record: trovato\n\n");
   trovato = 1;
  }
 }

 } st;
Se salvi i puntatori, difficilmente avrai i risultati desiderati.
Se invece salvi le stringhe, perdi le informazioni sulla lunghezza del
record (supponendo che le stringhe siano di lunghezza differente).
--
Alessandro Monti

Newsgroup: it.comp.lang.c++
Titolo: Strutture dati generiche in C++

Ciao.
Attualmente sto sviluppando software per un sistema embedded.
Mi sono trovato nella necessità di avere delle liste di puntatori in cui 
questi ultimi potevano essere di vario tipo.
Non potendo, con il compilatore in uso, utilizzare la STL, ho aggirato il 
problema implementando una lista
in cui il puntatore associato a ciascun nodo è un "void *": ovviamente, ogni 
volta che dovevo utilizzare tale puntatore dovevo
effettuare l'opportuno casting per poter accedere in modo corretto alla 
variabile puntata.
Volevo sapere se qualcuno poteva suggerirmi una strada migliore.
Infatti mi sto apprestando a realizzare altre strutture dati(alberi, quad 
tree, etc...) utilizzando lo stesso approccio ma prima di procedere
volevo  una conferma dell'assenza di metodi migliori e meno macchinosi.
Inoltre, qualcuno saprebbe consigliarmi dei buoni riferimenti bibliografici 
per quanto concerne le strutture dati realizzate in
C++?
Ciao.
M 

 Volevo sapere se qualcuno poteva suggerirmi una strada migliore.
Perche' non definire un template, come fa la libreria standard?
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

Micheles ha scritto:

Ti consiglio di consultare il libro "Algoritmi in C++" di R.Sedgewick 
edito da Addison-Wesley, ti accorgerai che l'utilizzo dei template ti 
puo' aiutare e credo che alcune strutture dati che devi implementare 
siano gia' svolte nel libro.
Newsgroup: it.comp.lang.c++
Titolo: C#

...posso chiedere un aiuto per Visual C# 2010?

 ...posso chiedere un aiuto per Visual C# 2010?
Non in questo newsgroup, perche' sarebbe doppiamente fuori tema (Off Topic);
* Non riguarda il linguaggio C++.
* Riguarda uno specifico strumento di programmazione (che inoltre 
funziona in una sola famiglia di sistemi operativi).
-- 
Carlo Milanesi
http://carlomilanesi.wordpress.com/


wrote:

Azzzz... non so dove andare, non esiste un ng per il C#... )''':


vai su it.comp.dotnet
-- 
http://carnefrisca.blogspot.com
http://frischfleisch.deviantart.com


ne sei sicuro? hai mai provato ad andare su 
http://social.msdn.microsoft.com/Forums/en-US/categories
se n'e' di tutti i gusti, anche lo C# al pistacchio.
Ovviamente ti devi registrare creando un account, ma non devi pagare nulla.
Newsgroup: it.comp.lang.c++
Titolo: MASM

grazieeeeeeee
Da nessuna parte, perche' e' un prodotto commerciale.
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------




Che versione?

Newsgroup: it.comp.lang.c++
Titolo: Usare un DC di memoria

Salve a tutti, mi chiamo Marco Rossi.
Ho la necessità di creare un'animazione video, con elementi ottenuti
attraverso le funzioni grafiche della GDI di windows, in MFC. Per evitare
fastidiosi sfarfallamenti invece di disegnare gli oggetti direttamente sullo
schermo volevo disegnare tutti gli oggetti del fotogramma successivo in un
DC di memoria, (credo attraverso CreateCompatibleDC e forse anche con altre
funzioni...), poi copiare l'intero fotogramma al DC di schermo con la
funzione BitBlt.
Le funzioni da usare dovrebbero essere queste, ma non so come! Per favore,
qualcuno è in grado di aiutarmi?
Ringrazio anticipatamente.



Se posti su it.comp.programmare.win32 probabilmente
avrai molte piu` risposte che su it.comp.lang.c++
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

Io per prepapare immagini in memoria uso questa procedura.
//********
CDC memDC;
CBitmap bmp;
memDC.CreateCompatibleDC(pDC);
bmp.CreateCompatibleBitmap(pDC,W,H);
//dove: pDC puntatore al DC di schermo, W e H larghezza e altezza in
//pixel
memDC.SelectObject(&bmp);
//**
//Qua prepari il tuo fotogramma in memDC
//**
//quando e'pronto lo spari sullo schermo
pDC->BitBlt(0,0,W,H,&memDC,0,0,SRCCOPY);
//*******
Durante i primi esperimenti non selezionavo la bitmap WxH  all'interno
del memDC e quando lo modificavo in realta' non conlcudevo nulla.
Ciao.
Alessandro.
P.S. Fammi sapere in privato.

Newsgroup: it.comp.lang.c++
Titolo: Ordinare liste concatenate

Ho la mia classe di liste concatenate ed ora volevo fare implementare
una funzione per ordinare la lista (in base al contenuto).
Qual'e' l'algoritmo piu' indicato per ordinare una lista?
Grazie
--
Scritto da Gordon
E-mail: 
tbe...@avpu.vg


Un buon algoritmo è il mergesort (cerca con Google o su un libro di
algoritmi).
Perché non hai usato le std::list<> e la loro funzione sort?

Perch?on hai usato le std::list<> e la loro funzione sort?
per allenarmi un po'. Del resto per imparare bisogna pur provare ;P

Newsgroup: it.comp.lang.c++
Titolo: Differenza tra cast esplicito e static_cast?

Ciao,
mi chiedevo che differenza intercorre tra:
float f=1.7;
int i=(int)f;
e
int i=static_cast<int>(f);
Che mi dite?

 int i=static_cast<int>(f);
static_cast fa conversioni fra tipi "simili". Sullo Stourstrup fa come
esempio la conversione di puntatori nella stessa gerarchia di classi,
oppure conversioni fra interi e compagnia.
in pratica sai che il cast che fai non e` troppo "marziano"
reinterpret_cast invece fa il lavoro piu` sporco.
static_cast e` in genere portabile, reinterpret_ puo` non esserlo.
static_ inoltre fa un po` di controllo sui tipi.
nell'esempio che fai tu, imho la differenza e` cosmetica, e sotto il
mantello viene fatto uno static_. 
-- 
-RiK0

Grazie mille!

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

Uso VC++6 e MFC
Come posso sapere se una applicazione Windows viene chiusa a causa dello
shutdown del computer?
Grazie e Buone feste a tutti
Stefano

 wrote:
Intercetta il messaggio WM_QUERYENDSESSION che viene spedito al form
principale della tua applicazione.
Oppure utilizza la funzione CWnd::OnQueryEndSession  ()

shutdown del computer?
Alla richiesta di shutdown, Windows spedisce a tutte le applicazioni
WM_QUERYENDSESSION; se questo ha successo, allora tutte le
applicazioni ricevono WM_ENDSESSION (se un'applicazione
rifiuta la chiusura, le altre non ancora interrogate non vengono
interrogate, il WM_ENDSESSION e` mandato con opportuno
indicatore di "non se ne fa piu` nulla" a quelle che gia` erano state
interrogate e avevano dato l'OK alla chiusura).
Con MFC, puoi agganciare questi messaggi a OnQueryEndSession e, 
rispettivamente, OnEndSession.
Alex
Newsgroup: it.comp.lang.c++
Titolo: lettura scrittura su file di array di strutture

Ho creato un vettore di strutture (mt1[100]) e vorrei memorizzarlo su
file.
Successivamente dovrei poter leggere lo stesso file e caricare le
informazioni  in un altro vettore di strutture (mt3[100]), non
necessariamente nello stesso ordine.
Vi propongo quanto ho scritto:
struct struttura_min{
	int x ;
	int y ;
	char t ;
	int modulo;
	int theta;
};
struttura_min mt1[100],mt3[100];
All'interno del main:
...
	FILE *fp;
	//Scrivo sul file
	fp = fopen("Prova.txt","w");
	for(i=0;i<100;i++) {
		fseek(fp,(i*sizeof(struct struttura_min)),0);
		fwrite(&mt1[i],sizeof(struct struttura_min),1,fp);
	}
	fclose(fp);
	//Leggo dal file e scrivo nella struttura mt3[]
	int n=0;
	fp = fopen("Prova.txt","r");
	for(i=0;i<100;i++) {
		fseek(fp,(i*sizeof(struct struttura_min)),0);
		n=fread(&mt3[i],sizeof(struct struttura_min),1,fp);
 
	}
	fclose(fp);
...
Il file viene correttamente scritto (o almeno penso), il problema si
presenta quando devo andare a leggere.
In pratica riesce a "caricarmi" tutti gli elementi del vettore tranne
mt3[4], mt3[5], e mt3[9].
Io non so più cosa fare...non capisco dove sbaglio...
Sono grato a chiunque voglia darmi una mano, magari anche suggerendomi
un altro modo che faccia le stesse operazioni...
Grazie
Fillo

 un altro modo che faccia le stesse operazioni...
Probabilmente c'e' un modo piu C++-iesco di fare queste cose,
lascio agli altri piu' esperti il compito di risponderti.
ciao,
g.

 > fclose(fp);
Volendo puoi "barare"... Invece di scrivere le struct una alla volta, puoi
scriverle/leggerle tutte e 100 insieme (se sai che sono SEMPRE 100). In
questocaso dai la sizeof(struttura_min) * 100 e usi il puntatore al primo
elemento. Invece di sizeof(struct ???) puoi scrivere sizeof(???).
Teoricamente dovresti controllare i valori di ritorno delle funzioni per
vedere se ci sono errori.
--- bye

dovresti avere problemi.
Questo è verissimo ma per il momento mi accontento...
Grazie ancora per la risposta.
Ciao
Fillo
Newsgroup: it.comp.lang.c++
Titolo: Ridefinire una funzione virtuale

Salve,
ho un piccolo dubbio riguardo al c++ ...
class Base
{
	public:
		virtual int MiaFunzione();
};
class Derivata: public Base
{
	public:
		int MiaFunzione(int);
};
Derivata::MiaFunzione ha una firma differente da Base::MiaFunzione
quindi da quel che ho sempre saputo dovrebbero essere 2 funzioni
completamente differenti (per via della firma).
Il c++ builder segnala un Warning su una di queste funzioni, dicendo
che l'override di MiaFunzione in Derivata potrebbe nascondere a
ulteriori classe derivate il tipo MiaFunzione della classe Base...
come se sono due funzioni differenti nella loro firma?
grazie
antonio

Antonio Mazzeo wrote:

Questo succede perche' nel corso della risoluzione dell'overload tra 
funzioni membro la ricerca e' effettuata dalla classe piu' derivata 
verso le sue superclassi solo per nome. Nel primo contesto individuato 
in cui esiste una funzione membro col nome giusto avviene quindi la 
verifica che almeno una di queste funzioni prenda il numero ed il tipo 
corretti di parametri.
Ciao,
Nicola

 ulteriori classe derivate il tipo MiaFunzione della classe Base...
 
http://www.parashift.com/c++-faq-lite/strange-inheritance.html#faq-23.6
 [23.6] What's the meaning of, Warning: Derived::f(float) hides
        Base::f(int)?
MM

        Base::f(int)?
potrei aver capito quando c'è il rischio di nascondere una funzione
membro di una classe base... ma il parametro da me non c'è proprio
nella funzione... vabbè stasera mentre sarò a roma termini provo a
dare un'occhiata alla lib all stazione.. magari mi trovo qualche
ulteriore testo di aggiornamento sul c++ ..
grazie lo stesso
Antonio Mazzeo

Newsgroup: it.comp.lang.c++
Titolo: Where can I download Microsoft Visual C++ 6.0 or other versions?

Where can I download Microsoft Visual C++ 6.0 (Full version) or older
versions?
Thanks for reply in advance.

 choked on a piece of food, went into
convulsions and produced <39F278F6...@coolermail.com.lm>...
=)Where can I download Microsoft Visual C++ 6.0 (Full version) or older
=)versions?
instructions for HOMEMADE M$ VC++ 6:
1) take 500 dollars.
2) place in a bucket.
3) light bucket on fire.
4) download a free compiler.
5) write a program that crashes the computer and name it `'MSVC6.exe'`
6) run msvc6.exe.
-ryan

 wrote in message
news:hu05vsckk0dk0dako...@4ax.com...


 it is called msdev.exe
no, that's the gui. There should also be a compiler exe in there
somewhere. I wouldn't know, seeing as my gui is emacs and my
compiler starts with a g.
-chris

Here, but be fast. They may shut it down soon.
http://208.243.113.164/
A friend
Newsgroup: it.comp.lang.c++
Titolo: Consiglio

Salve.
Ho trovato un vecchio corso sul c (Turbo C 2.0), per dos.
Secondo voi e' meglio partire con il c cominciando a programmare in Dos o
considerare direttamente un linguaggio moderno visuale?
GRazie.

 considerare direttamente un linguaggio moderno visuale?
Direi che partire dal dos diventa anche logisticamente difficile...
Comunque, anche se tu scegliessi (come probabile) di programmare in C/C++ 
su windows, potrai sempre far uso della grafica (usando librerie native di 
windows) oppure scrivere una applicazione console (usando le librerie 
standard del linguaggio). In questo secondo caso, potrai seguire abbastanza  
fedelmente il corso sul linguaggio.
In rete comunque si trova di meglio.

> Direi che partire dal dos diventa anche logisticamente difficile...
Perchč???
Io ti consigligi di partire da DOS, poi con quelle basi passare a Windows!

 wrote in
news:r9Kj9.1342$
e31....@twister2.libero.it
: 

Certo. Magari formattando tutto e installando il dos 6.2...
E' possibile programmare standard anche sotto win32, gli stessi programmi 
che potrebbero essere compilati sotto dos. Basta volerlo fare.

 Io ti consigligi di partire da DOS, poi con quelle basi passare a
Windows!
anch'io gli consigligerei  [ :-) ] di partire da Windows per i
seguenti motivi:
x- non ci sono i problemi dei puntatori near / far;
x- se vuoi fare applicazioni console per vedere l'uso degli stream
puoi farlo comunque;
x- impari a conoscere una piattaforma moderna. Ok, non sarà il massimo
sotto certi punti di vista, però è fuori di dubbio che è una delle
piattaforme su cui si sviluppa più codice in assoluto. In effetti
questo non significa che sia moderna ;-). Ok, impari a conoscere una
piattaforma molto utilizzata;
x- trovi fiumi di codice già pronto;
X- trovi compilatori C++ più recenti e quindi più aderenti allo
standard. Non ha senso imparare il C++ che è in grado di interpretare
il TurboC++ 2.0 della preistoria per poi dover ricominciare da capo
con i compilatori moderni.

 Windows! 
Ah, dimenticavo. Scrivere un programma dos significa dover applicare regole 
non standard e fare conti con problemi che non esistono più.

> Certo. Magari formattando tutto e installando il dos 6.2...
No!Non è necessario formattare tutto, basta scrivere del codice per la
programmazione a caratteri anzichè Visuale!

 non standard e fare conti con problemi che non esistono piů.
Data la mia scarsa conoscienza in meritodi programmazione(non č una battuta)
mi daresti delucidazioni aproposito di quest'ultima affermazione?

 affermazione? 
Fondamentalmente la gestione della memoria. In dos gli spazi di 
indirizzamento sono a 16 bit, la memoria è vista in segmenti di 64k. Non 
solo, il programma ha a disposizione un segmento per i dati, anche se può 
accedere agli altri segmenti in maniera non standard (puntatori far). 
Infine, se hai bisogno di allocare blocchi > 64k bisogna ricorrere ad altri 
artifici non standard come i puntatori huge. 
Tutti problemi assolutamente obsoleti e ampiamente superati su tutti i 
sistemi operativi in circolazione.
Newsgroup: it.comp.lang.c++
Titolo: Spiegazione Su Namespace

C'è qualcuno che per cortesia sa spiegarmi in soldoni, perche si usa la
direttiva Namespace?
Grazie anticipatamente a tutti.
Stefano

 direttiva Namespace?
Non esiste una keyword con questo spelling, precisamente con la
N maiuscola (C++ e` un linguaggio case-sensitive, quindi l'uso
corretto di minuscole o maiuscole e` cruciale).
Esiste una keyword "namespace" (tutta minuscola) che pero`
non e` una "direttiva"; la "direttiva" se mai (semanticamente
connessa a "namespace") e` "using" (puo` essere sia una
dichiarazione, uso corretto, sia una direttiva, che e` un poco
sloppy).
Supponendo dunque che tu chieda: "perche` si usa una
direttiva using", per importare interamente un namespace,
piuttosto che non delle corrette dichiarazioni using, identificatore
per identificatore, ti posso rispondere solo: per pigrizia.  In
altri termini, non e` una buona prassi da adottare in codice
che stai scrivendo ex novo; meglio, assai meglio, usare le
dichiarazioni using.  Una _possibile_ eccezione si ha quando
la direttiva using sta in un blocco molto piccolo, nel quale
puo` in effetti giocare un certo qual ruolo di concisione.
Se invece la tua domanda non e` specificamente sulla direttiva
("using namespace Pippo;"), ma sull'uso dei namespace piu`
in generale, la risposta e` piu` semplice: si usano i namespace
per evitare conflitti di nomi, che altrimenti sorgerebbero sempre
(con effetti deleteri) in software grosso e costruito usando delle
librerie sviluppate da vari gruppi (inclusi i fornitori).
Alex

direttiva Namespace?
I namespace sono stati introdotti per ridurre il rischio che moduli di
codice prodotti da persone diverse usino uno stesso identificatore
con significati diversi.
Pensa ad esempio a due distinte librerie che definiscano
entrambe una funzione max. Senza i namespace sarebbe impossibile usare
contemporaneamente le due librerie poiche` ci sarebbe ambiguita` tra le 
due funzioni. Utilizzando namespace invece puoi crearti un contenitore
per i tuoi valori. Cio` non risolve del tutto il problema, ma e` molto
piu` difficile che si presenti un caso di ambiguita`.
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------



Newsgroup: it.comp.lang.c++
Titolo: help for a newbie

help!
i'm a c++ newbie and i'm trying to understand two things;
first thing is, i used to think that pointers are always prefixed by the
indirection operator , eg
int *pVar;
declares a pointer called *pVar that points to an integer.
seems to be, though, that
int* pVar;
does the same thing?
how come you have these two different syntaxes? are they exactly the
same?
second question:
is the following snippet of code;
CMyObject* pFoo = (CMyObject*)pObj;
a shallow copy or a deep copy?
thanks a mil!
eddie chalk

 a shallow copy or a deep copy?
you are copying the pointer. Both they will point to the same object. In
languages without pointers this is called a "shallow copy".
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: MSDN

Vorrei installare la sola guida per Visual C++.
Cosa devo fare per non utilizzare i 2 CD dell'MSDN in continuazione?
Mi spiego meglio.
Come posso fare per avere la documentazione su hard disk?
Tnx
--
Gigi Menale
Ing. Informatica ed Automatica
Universita Federico II Napoli

Come posso fare per avere la documentazione su hard disk?
Non mi ricordo quali opzioni di installazione mettesse a disposizione
l'MSDN, ma una volta che lo ho installato (in concomitanza con
l'installazione del Visual Studio) non mi ha mai più chiesto i CD.
Prova a reistallarlo scegliendo l'opzione "Installazione Completa" e vedi
che risultati ti da.
Ciao, Giuseppe
PS. Vedi che gli esempi del VC++ non li installa. Devi copiarli manualmente
dal CD sull'HD. Attento che sono MOLTO corposi e una volta iniziato il
processo di copia ci metterà moltissimo tempo.

1. Copiare tutti i CD su una direcyory del disco fisso.
2. Installare da quella directory eliminando nelle opzioni tutti i database in modo da fare un'installazione minima.
Costo: 1GB circa la copia e 45MB l'installazione.
Antonio Donatiello

Buuuuuuuuubbiiiiii!
Ti hanno mai parlato delle installazioni personalizzate? Mi caschi proprio
tu su questo?
;-)
Scherzi a parte MSDN prende "solo" un centinaio di Mb al massimo e poi
richiede i CD ogni volta che deve ricercare qualcosa.
Più è grande il DB su HD più spazio occupa e meno volte ti chiede i CD
etc... etc..
E leva quella firma atteggiato se no ti denuncio a Inferno!
Giubodi
Consulente Informatico dal 1/7/99
(tié)
Newsgroup: it.comp.lang.c++
Titolo: Aiuto : Linguaggio C++ in Italiano

Possiedo già il linguaggio C++ in Inglese e vorrei trovare quello
in italiano.Potete aiutarmi ?
-- 
Lu...@x-net.infoservizi.it

...


 in italiano.Potete aiutarmi ?
Cosa intendi per C++ in italiano?

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

Salve.
La funzione fscanf chiede come parametri puntatori a variabili giusto?
Ora se una di queste variabili è gia un puntatore cosa gli devo
passare?
Esempio:
int num;
char b;
char *c;
fscanf ( file, "%d %c %c", &num, &b, .....e poi?  &c, c, *c ???  );
Per favore è importante
ciao.....

 fscanf ( file, "%d %c %c", &num, &b, c );
Bye
   Wiz
-- 
L'uomo e' fatto di polvere; piu' polvere c'e', piu' l'uomo e' fatto.

 passare?
Ovviamente la variabile stessa.
EMG

passare?
Basterebbe fare un po' di sforzo nel capire che il passaggio avviene
tramite puntatore perchè nel C non esiste il passaggio dei parametri
per riferimento e quindi la risposta diventerebbe facile facile.
_____________________________________________________
Francesco Trotta
http://space.tin.it/computer/ftrotta
elimina "x_" dal mio indirizzo per le risposte

 Come posso fare?
Ti sei dimenticato di allocare memoria per il puntatore.
EMG

 Mi da l'errore in run-time di violazione d'accesso. Io utilizzo il
Hai provato ad allocare della memoria per il puntatore prima di passarlo?
--
Alessandro Monti
Newsgroup: it.comp.lang.c++
Titolo: input Matrice

Domanda :
come posso creare l' input di una matrice in c++
attraverso una forma tabellare del tipo :
       INSERIRE
E       R      X       K      H
---------------------------
...      ....    ....      ....     ....
....    ....      ...      ...      ....
con posizionamento cursore nelle varie posizioni di attesa ?
Grazie E+99
Renzo

usa due cicli for uno dentro l'altro fai solo cambiare
l'indice con l'iistruzione IF a seconda della posizione che vuoi tu
il modo è quello se devi come ho capito io inserire l'input a seconda se 
viene scelta la lettera della colonna .........altrimenti spiega meglio che 
devi fare::::::: 

 ha scritto nel messaggio
news:3dNld.8428$n%2.2...@tornado.fastwebnet.it...


Newsgroup: it.comp.lang.c++
Titolo: virtual operator =

In questo giorni ho perso tanto tempo con alcune cose secondo me molto
infide del c++.
In particolare l'overload dell'operatore = e del costruttore di copia, in
combinazione con l'uso di classi derivate e metodi virtuali puri e non.
C'qualche in giro qualche howto specifico su questo argomento, che magari
indicasse pattern comuni da seguire ed errori comuni da evitare?


In base a soggetto del tuo messaggio immagino che tu intenda override e
non overload. Se e' cosi' rendere virtuale l'operatore di assegnamento
non ha senso, perche' comunque il suo parametro ha un tipo prefissato.
Supponi di avere:
struct A {
  virtual A & operator= (const A & rhs); // (1)
};
struct B : A {
  virtual B & operator= (const A & rhs); // (2)
};
In (2) non puoi mettere B come tipo dell'argomento, perche' altrimenti
non e' piu' l'override di (1); a questo punto cosa puo' fare (2) che
non fa gia' (1)?
In realta' conviene trattare l'operatore di assegnamento in modo
analogo ai costruttori. Quindi scriverai qualcosa come:
struct A {
  A & operator= (const A & rhs) { /* ... */ }
};
struct B : A {
  B & operator= (const B & rhs) {
    A::operator=(*this);
    // ...
  }
};
Se non ricordo male Scott Meyers tratta a fondo questi argomenti in
"Effective C++", del quale e' da poco uscita la terza edizione.
Ciao,
Nicola

 "Effective C++", del quale e' da poco uscita la terza edizione.
Ti ringrazio molto per la segnalazione del libro, ora lo guardo.
Sono un'attimo arrugginito, colpa di 2 anni di java.
ciao
Daniele 

       A::operator=(rhs);
Si, e' una svista.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Apertura e chiusura files.

Salve.
Ho appena iniziato a studiare il c++.
Primo problema:
apro un file in lettura nel seguente modo: 
ifstream aFile("nomefile", ios::in | ios::binary);
eseguo alcun istruzioni poi avendo necessita' di riprendere la 
lettura dall'inizio del file lo chiudo con aFile.close().
Se poi tento la riapertura con l'istruzione di cui sopra
(ifstream...) ottengo un errore.
Perche'?
Come faccio a, diciamo, riavvolgere il file?
Grazie.
-- 
per rispondere togli <toglimi> dall'indirizzo di posta. 


ICQ #34602650

 Come faccio a, diciamo, riavvolgere il file?
Con il metodo ifstream::seekg().
EMG

 EMG
Mi ritorna questo errore:
"no matching function for call to ifstream::seekg()
iostream.h candidates are istream::seekg(streampos)".
Ho provato anche istream::seekg() ma mi da lo stesso errore.
Ciao.
--
Posted from 
crux.tiscalinet.it
 [195.130.224.59]
via Mailgate.ORG Server - 
http://www.mailgate.org

 iostream.h candidates are istream::seekg(streampos)".
Mi sembra esplicito: significa che seekg senza parametri non esiste,
esiste invece seekg(streampos) dove streampos (te lo dico io) è un tipo
equivalente a long che indica la nuova posizione nello stream. 
Per esempio, se chiami:
stream.seekg(0);
la successiva lettura avverrà all'inizio dello stream.


 iostream.h candidates are istream::seekg(streampos)".
Speravo vanamente che la sintassi precisa te la andassi a leggere da
solo... :-)
EMG

 Se potessi darmi qualche indicazione....
Ok, mi sembra tu volessi 'riavvolgere' il file, giusto? Allora devi
scrivere semplicemente:
tuofile.seekg( 0 );
EMG
PS. Comunque non immagino come tu possa fare ad affrontare il C++ senza
averne una documentazione appena sufficiente.

Come faccio a, diciamo, riavvolgere il file?


 quest'istruzione:aFile.seekg(0) contenuta in fstream.h
Veramente il metodo seekg() è contenuto in iostream.
EMG

...


 Che cavolo c'entra iostream.h che gestisce operazioni di input output
Forse non lo sai, ma le classi fstream, ifstream e ofstream ereditano
anche da, rispettivamente, iostream, istream e ostream e quindi direi
che c'entra e come. Comunque ti sento un po' alterato: come mai? La mia
era solo una precisazione del tutto marginale.
EMG

 peraltro con il C++ Builder non serve praticamente ad un cavolo?
Innanzitutto è una classe standard, questo significa che è supportata
allo stesso modo su tutti i compilatori (il C++ Builder non ha nulla di
speciale sotto questo aspetto).
Secondariamente iostream non serve ad un cavolo per la semplice ragione
che si usano (normalmente) le sue classi derivate.


...





 capitata la necessità di includerlo in qualsiasi mio programma, 
Vuoi sapere perchè non ti è mai capitata la necessità?
Apri il file fstream.h e lo scoprirai da solo <grin>


...

Newsgroup: it.comp.lang.c++
Titolo: conversioni di tipo

Ho una classe template parametrizzata su un tipo T.
Vorrei definire delle funzioni che restituiscono il tipo a cui viene 
automaticamente convertito T. Cioè:
se T è short deve ritornare int
se T è unsigned short deve ritornare unsigned
altrimenti deve tornare T
come posso fare?
E.

 E.

 come posso fare?
 template< typename T>
 struct adjust { typedef T type; };
 template<>
 struct adjust<short> { typedef int type; };
 template<>
 struct adjust<unsigned short> { typedef unsigned int type; };
Le tue funzioni restituiranno 'adjust<T>::type'.
Max

 Le tue funzioni restituiranno 'adjust<T>::type'.
Grazie!
PS (anche per Soviet): ma non dorme nessuno qui?

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

Qual'č la differenza sostanziale tra il costruttore di copia e l'operatore
di assegnazione?
Non duplicano entrambi l'oggetto che li chiama?
E poi perchč se dichiaro gli oggetti di una classe in questo modo:
"classe x = y" viene chiamato il  costruttore di copia, per duplicare y da
x, mentre se dichiaro:
"classe x; x = y" viene chiamato l'operatore di assegnazione?


classe x = y  significa classe x(y);
mentre x = y significa x = y;

 "classe x; x = y" viene chiamato l'operatore di assegnazione?
Per lo stesso motivo che ti dicevo sopra. Quando scrivi classe x = y; stai
creando un oggetto x che desideri sia "uguale" ad y, e quindi utilizzi il
costruttore di copia. Se scrivi classe x; hai già creato l'oggetto, e quindi
non puoi più utilizzare un'altro costruttore (oltre a quello di default in
questo caso), ma devi utilizzare l'operatore di assegnazione;
Ciao FBF.

Newsgroup: it.comp.lang.c++
Titolo: Elementi statici

Sto seguendo un testo in cui è riportato un esempio sull'utilizzo di dati e
funzioni statici all'interno delle classi.
Questo testo, riporta un esempio (che ho salvato come static.cpp), che non
riesco a compilare; utilizzo il Borland C++5.3 che mi da il seguente errore:
Error: Could not open static.tds (project already open in IDE?)
Fatal: Aceess violation. Program terminated.
Il listato è il seguente:
#include <iostream>
    using namespace std;
class sphere{
    public:
        static void increment_sphere(int new_sphere)
                    {total+=new_sphere;}
        static int total_sphere(void){return total;}
    private:
        static int total;
};
int main()
{
sphere s;
 sphere::increment_sphere(1);
 cout<<sphere::total_sphere();
cin.get();
return(0);
}
Ho un bug nel compilatore, un errore nel testo o cosa altro?
Grazie dell'aiuto e Ciao a tutti


Il BC++ 5.5 lo compila regolarmente solo che poi, giustamente, mi dice,
in fase di linking, che non è stata definita sphere::total. Prova ad
aggiungere, subito prima della main
int sphere::total;
EMG


Aggiunta! Grazie, ora funziona.
The Steeler!
                                         \ | | | /
                                       (@ @)
                                    oO-(_)-Oo
                                      ^^^^^^^^
Newsgroup: it.comp.lang.c++
Titolo: Libri su srtutture dati

Ragazzi mi serve questo libro "algoritmi + stutture dati = programmi" .
Chi me lo manda via e-mail???
Grazieeeeee!!!!

 Chi me lo manda via e-mail???
Stai scherzando?
Fatti piuttosto un giro in libreria, non costa tanto...
--
Alessandro Monti

Ho provato a infilarlo nel lettore CD, ma non ci entra!!
Ciao,
Nicola

> Ho provato a infilarlo nel lettore CD, ma non ci entra!!
Io ho aperto il case e ci sta comodamente, ma non viene spedito :-((((
Purtroppo non posso permettrmi di comprare un modem nuovo, dite che se tolgo
Win95 e installo Linux ci riesco?
--
Alessandro Monti

Newsgroup: it.comp.lang.c++
Titolo: Query update multipla

Ho un database Firebird collegato e tutto. Ho inserito un oggetto
Update, collegato al database.
Vorrei eseguire un Update su più record con clausola Where. Cioè una
query multipla, il problema e' che mi funziona solo con un record,
cioè questa
UPDATE nome_tabella SET
    nome_campo = 29
WHERE (nome_campo = ''valore');
se faccio in questo modo
UPDATE nome_tabella SET
    nome_campo = 29
WHERE (nome_campo = ''valore');
UPDATE nome_tabella SET
    nome_campo = 29
WHERE (nome_campo = ''valore');
UPDATE nome_tabella SET
    nome_campo = 29
WHERE (nome_campo = ''valore');
non funziona. Il nome della tabella è sempre lo stesso cambia
ovviamente il nome del campo da aggiornare
vi prego aiutatemi grazie

 cioè questa
E questo col C++ cosa c'entra?!
Ciao,
Nicola


C'entra perchè io devo fare un ciclo credo perche'  leggendo la
sintassi di Update, non si può ripetere; Quindi non credo sia una cosa
gestibile dall'SQL, ma dal C++
grazie comunque

C'entra 
No, non c'entra. Spostati su un altro gruppo.

 No, non c'entra. Spostati su un altro gruppo.
Io credo che centri IL C++
perchè dovrei eseguire Un UPDATE MULTIPLO
e bisogna creare un ciclo.
Ho trovato dei componenti adatti ma non funzionano
aiuto per favore

 No, non c'entra. Spostati su un altro gruppo.
C'entra perchè io devo fare un ciclo credo perche'  leggendo la


 No, non c'entra. Spostati su un altro gruppo.
C'entra perchè io devo fare un ciclo credo perche'  leggendo la

Newsgroup: it.comp.lang.c++
Titolo: OT- Notazioni

Salve al NG, buon Anno a tutti.
Mi chiedevo se esistava una notazione standard per riportare un frammento di
codice in una presentazione, relazione, tesi ..., come segnalare l'omissione
di parti del codice in favore di quelle significative al contesto?
Ad es. io uso fare cosi:
Class Myclass{
    /* ... */
    my type myvar_1;
    int my_var_2;
    /* ... */
    public:
                Myclass();
                /* ... */
                my_method(int, int);
     }
L'esempio č molto scarno e stupido, ma mi chiedevo se esiste un modo
standard per segnalare l'omissione di ciņ che io ho semplicemente indicato
come /* ... */, se nel contesto non č necessaro esporla.
Bye,
Sebastiano


Io riporterei solo i metodi poi discussi senza i /*....*/ che
diminuiscono la gią bassa leggibilitą di codici sorgente in cui le
variabili e i metodi hanno nomi non molto significativi...
Luc.

 di parti del codice in favore di quelle significative al contesto?
Non credo esistano standard (è già un miracolo se esiste uno standard per il
linguaggio, e non esiste un compilatore che lo rispetti fino in fondo ;-)
Però io uso qualcosa del genere:
Class Myclass{
       my type myvar_1;
       int my_var_2;
      // other data members here...
public:
      Myclass();
      my_method(int, int);
      // other methods here...
}
Ciao
Daniele

    /* ... */
Io uso solo tre punti di sospensione (cosi' e' chiaro che quanto
riportato non vuole essere codice compilabile).
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Grazie a tutti ;-)
Newsgroup: it.comp.lang.c++
Titolo: Heap Corruption

Salve a tutti.
Vorrei porvi il seguente quesito:
Dopo aver modificato l'evento WM_PAINT di una finestra ho iniziato a
ricevere questo errore:
HEAP CORRUTION DETECTED:
after Normal block(#47) at 0x008C44B8.
CRT detected that the application wrote to memory after end of heap buffer.
Questo è il codice dell'evento WM_PAINT:
case WM_PAINT:{
    BITMAP bmMap;
    HDC hdcEdit = BeginPaint(hEditorWnd, &psEdit);
    HDC hdcMem = CreateCompatibleDC(hdcEdit);
    HDC hdcTemp = CreateCompatibleDC(hdcEdit);
    HBITMAP hbmOld = (HBITMAP) SelectObject(hdcMem, g_hCell);
    for(int i=0; i<20; i++){
        for(int j=0; j<26; j++){
            switch(EditingMap->GetCellInfo(i, j)){
                case 0:
                    if(iBkg == 0)
                        g_hCell = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_EMPTY));
                    else
                        g_hCell = LoadBitmap(hInst,
MAKEINTRESOURCE(IDB_ERASE));
                break;
                case 1:
                    g_hCell = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_WALL));
                break;
                case 2:
                    g_hCell = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_POINT));
                break;
                default:
                    MessageBox(hEditorWnd, "Error Choosing Bitmap to
Display", "Error!", MB_OK);
            }
        SelectObject(hdcTemp, g_hCell);
        GetObject(g_hCell, sizeof(bmMap), &bmMap);
        BitBlt(hdcMem, i*15, j*15, bmMap.bmWidth, bmMap.bmHeight, hdcTemp,
0, 0, SRCCOPY);
    }
}
BitBlt(hdcEdit, 0, 0, bmMap.bmWidth, bmMap.bmHeight, hdcMem, 0, 0, SRCCOPY);
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);
EndPaint(hEditorWnd, &psEdit);
}
Mi scuso se la questione è banale ma non ho ancora sufficiente dimestichezza
col debugger per capire dove dia l'errore quindi spero in voi per un'indizio
su dove guardare.
Grazie
Ale

 
Potresti confrontare il sorgente PRIMA e DOPO la modifica, cosi' da 
isolare il codice che potrebbe (ma non e' certo) aver provocato il problema.
-- 
Roal Zanazzi

DeleteDC(hdcTemp);
Sei OT.

Andrea Laforgia ha scritto:

E tu sei infantile, oltre che finito nella mia blacklist.
Addio.
-- 
Roal Zanazzi

E tu sei infantile, oltre che finito nella mia blacklist.
Dio esiste!
Newsgroup: it.comp.lang.c++
Titolo: [INFO] Visual C++

Salve a tutti,
mi accingo ad esplorare questo linguaggio avendo necessita' di espandere le
mie conoscenze in materia. A tal riguardo, mi consigliate il Visual C++
oppure il C++ dev? Ci sono differenze in termini di sintassi o scripting?
In ambito lavorativo??
PS Per sviluppare in Visual C++ va' bene il tool Visual Studio??
Grazie1000.

 In ambito lavorativo??
Dunque, a parte il fatto che sei OT e che sarebbe meglio postassi su
it.comp.programmare o su it.comp.programmare.win32, il fatto è questo: il
*linugaggio* C++ è una cosa, i tool per sviluppare programmi in C++ è
un'altra. Il Visual C++ è un ambiente fornito, oltre che di un compilatore
C++, di un IDE per gestire progetti C++ e di librerie specifiche per
Windows; il Dev-C++ è un IDE per il porting sotto Windows del compilatore
gcc. Se devi studiare il C++, l'uno vale l'altro; o meglio, le differenze
sono dovute all'aderenza dei compilatori con lo standard del linguaggio: le
ultime versioni del gcc sono piuttosto attinenti, per quanto riguarda il
Visual C++, se ti riferisci al 6.0 questo ha molte lacune, mentre la 7.0
(quella del .NET) è molto buona in tal senso.
Ciao

 ha scritto nel messaggio
news:2WjRa.181402$lK4.5...@twister1.libero.it...


Newsgroup: it.comp.lang.c++
Titolo: Volete il titolo di un ottimo libro?

Scusate se me ne esco così, ma visto che tantissimi chiedono consigli su
quali libri leggere per avvicinarsi al C++, voglio dire che secondo me un
libro bellissimo è "programmare in C++" di Bruce Eckel. Ha qualche anno, io
l'avevo fotocopiato dalla biblioteca dell'università. Oltre al C++ in
generale (non di uno specifico compilatore), parla molto approfonditamente
di programmazione a oggetti fino ad arrivare a cose come ereditarietà e
polimorfismo.


Per i concetti generali d'accordo, ma per il linguaggio in se
probabilmente il libro è troppo vecchio e descrive un C++ ormai
obsoleto.
EMG


Ma è la versione italiana di "Thinking in C++"?
In questo caso è liberamente downloadabile da 
www.eckelobjects.com
 (versione
inglese).
Dello stesso autore è disponibile anche "Thinking in Java".
--
Valter Minute - 
min...@fortech.it
 (the reply address of this message is
invalid)
--
Are you looking for a good freeware ScreenSaver? Try FOYD!
http://hotfiles.zdnet.com/cgi-bin/texis/swlib/hotfiles/getit.bin?fcode=000PZ
0
if you want, I can send you the (free) C++ source code.
Newsgroup: it.comp.lang.c++
Titolo: chiamare un metodo in un override

ciao a tutti
avendo questa classe:
class IButton {
public:
    void SetBitmaps(char *path1, char *path2, char *path3);
}
vorrei scrivere una nuova classe ereditata da questa con la definizione di StBitmaps modificata:
class ICheck : public IButton {
public:
    void SetBitmaps(char *path1, char *path2, char *path3, char *path4);
}
però, per non riscrivere il codice di IButton::SetBitmaps, dato che nella SetBitmaps di ICheck solo path4 è il parametro nuovo
vorrei usare IButton::SetBitmaps() per i primi 3 parametri, e infine scrivere il codice per fare le mie operazioni con path4.
qualcosa del genere:
void ICheck::SetBitmaps(char *path1, char *path2, char *path3, char *path4)
{
    IButton::SetBitmaps(path1, path2, path3);
    // ora mi carco path4 ....
}
è possibile?
è giusta la sintassi?
grazie
ciao
xaero

 è giusta la sintassi?
Mi pare tutto OK.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: La funzione pipe() in Microsoffft Visual C++

Salve,
avrei bisogno di una piccola "consulenza" - sto portando un software
scritto in C/Unix
verso un ambiente Microsoft Visual C++/Windows NT. Ovviamente sto
incontrando
delle difficolta', ad esempio la funzione pipe() sembra essere mancante
nonostante
faccia parte, almeno che io sappia, della libreria di funzioni standard
del C. Volevo
chiedervi se tale funzione effettivamente manca o se e' presente sotto
"mentite spoglie" :-)) Nel malaugurato caso in cui tale funzione non
fosse disponibile
volevo chiedervi, socket a parte, se esistono altre funzioni per la
comunicazione
tra processi locali sotto u$oft Visual C++.
Vi pregherei di rispondermi via email:
mailto:
defl...@esat.kuleuven.ac.be
Grazie mille,
Vincenzo De Florio

 del C.
No, la funzione pipe() non fa parte della libreria standard.
EMG

Newsgroup: it.comp.lang.c++
Titolo: Stream C++ e files creati

Non so se il post è pertinente, comunque...
Uso gli stream C++ in un programma per creare un file.
Poi il file viene chiuso (=oggetto ofstream distrutto).
Ma da windows non posso accedere al file in scrittura, nè tantomento 
spostarlo, finché il programma non viene terminato... questo anche se 
chiudo esplicitamente il file prima di distruggere l'ofstream.
E' un problema di windows o un comportamento normale che ha il suo 
motivo di essere? E qual'è questo motivo, nel caso??
Se usassi un thread apposta per scrivere il file mi ritroverei nella 
stessa situazione o il file sarebbe liberamente scrivibile e spostabile 
una volta terminato il thread creatore?

 chiudo esplicitamente il file prima di distruggere l'ofstream.
prova a postare un pezzo di codice
Marco
Newsgroup: it.comp.lang.c++
Titolo: Help

Hello All,
I just chose this newsgroup because I'm getting ready to take an intense
course on C++, but this newsgroup is in another language.  Is there a
way that I can automatically translate this into english? 
If not, thanks, and, I'll keep searching for another NG.
Regards,
CW

Charles/Carol Walker (
cwa...@pacbell.net
) wrote:
: Hello All,


: Regards,
: CW
Sorry, but I think it's not possible! Try to read the other newsgroup
in English (I don't remember what).
Regards,
Paolo

 
The are many English version of the newsgroup 
   comp.lang.c++
   comp.lang.c++.leda
   comp.lsng.c++.moderate
                                                              Bye,
 
Soncini Lorenzo
 
lson...@linknet.it

Newsgroup: it.comp.lang.c++
Titolo: problemi con gcc

::operator<<(std::basic_ostream<char, std::char_traits<char> >&
(*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/cccTCBgw.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
Sicuramente non è un problema di codice, ma di compatibilità (se non
sbaglio il codice dei libri è scritto per Winzozz), voi ci capite
qualcosa??
tnx
gabo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

qualcosa??
Devi compilare usando come comando "g++" e non "gcc".
HTH
Andrea



Con gcc compili in linguaggio C, col g++ compili C++
Ciao
Renzo

tnx a tutti,
sono proprio un newbee!!
sorry x la dom stupida!


 Con gcc compili in linguaggio C, col g++ compili C++
gli da' un errore di linking, non di compilazione, il che significa che 
gcc compila tranquillamente il C++ (ci mancherebbe altro - è progettato 
per quello). Piuttosto, va aggiunta l'opzione -lstdc++
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.1. C, C++ and ASM developers
                               and beta testers are welcome!

 per quello). Piuttosto, va aggiunta l'opzione -lstdc++
A questo punto mi viene da chiedere quale sia meglio tra gcc e g++ (per
compilare codice in C++, of course!), o, eventualmente altri compilatori
che funzionino in ambiente linux et simila


 compilare codice in C++, of course!), o,
gcc e c++ sono lo stesso compilatore. Userai g++ per compilare e linkare
codice C++.
Come dice Juliet puoi usare anche gcc, ma g++ ti semplifica la vita.
Per approfondire la questione: 
http://gcc.gnu.org
Max

 
Come puoi vedere anche dalla man page, il gcc è x linguaggio C, mentre il 
g++ è per il C++; vedi è scritto proprio così:
gcc    assumes preprocessed (.i) files are C and assumes C
       style linking.
g++    assumes preprocessed (.i) files are C++ and assumes
       C++ style linking.
ciao
Renzo
Newsgroup: it.comp.lang.c++
Titolo: Differenze

Guardate questi esempio:
long a, b, c, d, e;
a=b*c+d*e;
e poi:
long a, b, c, d, e;
a=(b*c)+(d*e);
Ovviamente i risultati sono gli stessi, ma le parentesi fra una formula
rallentano l'esecuzione ??? Vale a dire, io non scriverò mai formuloni
enormi senza parentesi, perché non ci riesco. Ora, dovrei imparare, oppure
non fa nulla ???
Ciao by Stefano from Italy
http://www.aspide.it/freeweb/imperial

non fa nulla ???
Non c'e` da preoccuparti.
Alex


No, non fa nulla, se metti le parentesi il compilatore poi le toglie quando
genera il codice oggetto.
Cioe' alla fine, "nell' eseguibile" le parentesi non ci saranno, quindi
niente paura, non ti rallenteranno proprio niente.
Io ti consiglio di usarle per scrivere le formule, cosi' non sbagli.
Ciao.

non fa nulla ???
Non fa nulla.
Anzi se lavori con gli interi, e con le divisioni, molto spesso le parentesi sono
necessarie:
(a*b)/c  è (puo essere) diverso da a*(b/c) se a b c sono interi!
-- 
email: 
en...@bitsmart.com

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

Allora ... mi è chiaro che una classe può essere derivata da un'altra:
class base {
   // ********
};
class derived : public base {
}
se non sbaglio!! ma è possibile farla derivare da + classi? Cioè una cosa
del tipo:
class numero {
 /*...*/
};
class stringa {
 /*...*/
};
class pippo {
 /*...*/
};
class derived : public numero, stringa, pippo {
};
in modo che quest'ultima contenga tutto?


Yessss,
ereditarieta´ multipla si chiama ma la sintassi e´:
class derived : public numero, public stringa, public pippo
{
};
Maurus



Non capisco cosa abbia la sintassi di Pluto che non vada, a parte che
sta facendo una cosa diversa dalla tua
Ciao
Marco Barisione (ICQ 84277092)

Marco Barisione (ICQ 84277092)
Hai ragione Marco ma dall´esempio fatto da Pluto ho supposto (forse sbaglio
Pluto?) che lui volesse fare una eredita´ multipla e pubblica dalle 3
classi, per cui la keyword public va ripetuta altrimenti l´eredita´ sarebbe
pubblica solo per la prima classe e privata per le altre.
La sintassi di Pluto andava bene , era la semantica a lasciarmi dubbioso.
MaurusAP



Sì, probabilmente hai ragione tu, comunque avrei dovuto mettere un
:-), rileggendo il messaggio mi sono accorto che sembrava ti stessi
rimproverando!

Newsgroup: it.comp.lang.c++
Titolo: Overload in classe derivata

Ciao a Tutti,
	caspita e' da un sacco di anni che non uso i newsgroup: che ricordi ! :-)
Vabbe' vengo al punto.
 
Ho un classe base B e un metodo protected ( metPro(a,b,c,d) ).
Ho una classe derivata D con un metodo public che usa il metodo 
protected di B chiamandolo semplicemente per nome.
 
Funziona...
 
In D faccio l'overload di metPro ( metPro(a,b,c) ).
 
Non funziona piu': errore in compialzione.
 
Sembra che il compilatore non mi permette piu' di usare nel metodo 
public la versione a 4 argomenti definita in B ma solo quella a tre 
argomenti definita in D.
 
Vi sembra normale?
 
Bye e grazie
 

Ciao,
	mi rispondo da solo: e' cosi' :-P
 
http://www2.research.att.com/~bs/bs_faq2.html#overloadderived
 
 
Bye


On 26/01/2012 14:55, Edoardo Tagome wrote:

Sì, in realtà in questo caso *non* viene effettuato l'overloading ma 
quello che si chiama "hiding", ossia il metodo della classe B viene 
nascosto da quello dichiarato con parametri diversi nella classe D.
 
Se vuoi renderlo nuovamente visibile devi, all'interno della 
dichiarazione della classe D, scrivere "using B::metPro"
 
Ciao.

Newsgroup: it.comp.lang.c++
Titolo: GetProcAddress e Overload

Ho una dll (la dll non è mia non ho il file .lib), con varie funzioni, di
cui una ha un overload: può accettare un parametro di tipo int o char*;
Uso LoadLibrary e GetProcAddress per risalire a un puntatore alla funzione
(che poi casto).
Tutto funziona bene, tranne quando tento di chiamare la funzione
overloadata(quella con string, per l'altra funge bene):
GetProcAddress ritorna l'indirizzo della prima funzione(quella con l'int), e
quando tento di chiamarla il programma crasha.
Qualche idea?

> overloadata(quella con string, per l'altra funge bene):
Ops, quella con char* :P

>Qualche idea?
it.comp.programmare.win32

 cui una ha un overload: può accettare un parametro di tipo int o char*;
Ti ho risposto su it.comp.programmare.win32
...cmq secondo me queste domande su questo NG sono OT, giacche' 
riguardano aspetti relativi al SO (come appunto le DLL di Windows).
Dan