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

Ciao a tutti,
sto imparando a programmare in c++ (con il djgpp).... e subito ho dei
problemi! :(
Ho provato a compilare questo programma:
#include <iostream.h>
void main()	{
	cout << "Ciao Mondo! Oggi e'  il " << 9 << " dicembre!" 
	<<endl;
	}
ma mi ha dato come output una marea di errori di cui non ho capito
niente...qualcuno mi puo' dire perche'? 
Grazie in anticipo,
ciao,
MaNu!
***************************************************************
MaNu!		- 
ma...@cta.it
		- 
http://www.geocities.com/Area51/Cavern/8847/
		 "Web-Secret: X-Files e cospirazioni"
LaBarzellettaDellaSettimana:
Due cassaforti si incontrano per strada, e una dice all'altra:
"Che combinazione!"
***************************************************************

MaNu!
Cos'è endl ? premettendo che programmo in C da molto poco, se endl non è una
funzione speciale (che non conosco !!) ma è una semplice variabile, (che tra
l'altro non hai dichiarato ?!?) l'istruzione COUT << endl stampa il
contenuto attuale di quella variabile e non si ferma sino a quando non trova
un carattere nullo. Questo credo possa spiegare il fatto che ti stampi
strani simboli...
Spero di averti risposto !
Ciao, Ludo 
vip...@iol.it

endl è una costante predefinita da <iostream.h>, o da suoi "genitori",
che significa "fine riga".
Quindi per me rimane un mistero il malfunzionamento del programma di MaNu.
Non ho mai usato il djgpp, ma a meno che non sia per default in modalità
ANSI C o C++, ma classic C (K&R per intenderci), il main non può essere
void,
ma ad esempio ritornare un intero qualunque.
Caro Manuele, se vuoi che il newsgroup possa darti una mano, devi
specificare
tutti gli errori di compilazione e linking che hai avuto.
Provo ad indovinare: il linker non riesce a trovare alcuni riferimenti nel
tuo
programma? Se è così devi indicare, in qualche modo, al tuo compilatore dove
si
trova iostream.obj o qualche libreria che contiene le implementazioni delle
funzionalità di iostream.h.
Ciao.

funzionalità di iostream.h.
Grazie, era proprio questo l'errore...comunque ho provato a compilarlo
col Visal c++ ed e' andato tutto bene...thanks!
Ciao,


Newsgroup: it.comp.lang.c++
Titolo: Linker e librerie

Ciao,
uso Dev C++ 4.9.9.2 e ho un problema banale. Non riesco a far vedere al 
linker una libreria.
1) creo un nuovo progetto C++ in modalità console
2) aggiungo al progetto il file main.cpp
3) nelle proprità del progetto imposto:
parameters -> linker: il file .lib della libreria che mi serve
directories -> library -> il percorso della libreria precedente
directories -> include -> il percorso del file header sempre della libreria
Ma quando vado per compilare mi da i soliti errori di undefined 
reference dovuti al fatto che il linker non vede la libreria.
Mi sono perso un passaggio?
Grazie in anticipo!
Marco

 directories -> include -> il percorso del file header sempre della libreria
Ho fatto la stessa cosa con MS Visual C++ 2010 (che per installarlo ho 
scaricato il mondo e riavviato due volte il PC a forza) e ha funzionato 
subito :(
Marco
Newsgroup: it.comp.lang.c++
Titolo: Help !afxdtctl.h

Help !!!
dove posso trovare questo file ( afxdtctl.h ) ?


In una installazione completa di MFC del VisualC++ 6.0
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own

Newsgroup: it.comp.lang.c++
Titolo: Un esempio pratico delle funzioni friend?

Per quanto ne so le funzioni friend possono essere utili in tre casi:
1) quando si deve eseguire l'overload di alcuni tipi di operatori;
2) durante la creazioni di particolari tipi di funzioni di I/O;
3) quando più classi contengono membri correlati con altre parti del
programma.
le prime due non mi interessano (ci arriverò più avanti); mi interesserebbe
avere un esempio pratico dell'uso che viene illustrato nel 3° caso.
Gicchè ci troviamo mi fate anche un esempio pratico dell'uso delle CLASSI
friend?
chi me da na mano??
sent by .....
(o)<<<<<<<=>>>>>>>>(o)
  \\  +-------------------+  //    « Sono stato nessuno,
   )) |   }/* SgRuNg */{   | ((              per diventare qualcuno. »
  //  +-------------------+  \\
(o)<<<<<<<=>>>>>>>>(o)
=================================================
In principio, il file era informe e vuoto,
e il vuoto era sulla faccia dei bit.
E le Dita dell'Autore si mossero sulla faccia della tastiera.
E l'Autore disse "Siano le parole!",
e le parole furono.
=================================================

 friend?
Mi ricordo che nel "Thinking in C++" di Eckel nel capitolo dei design pattern,
in particolare quello sulle class factory, utilizza sia funzioni friend sia
classi friend.
Ciao Fbf.

Newsgroup: it.comp.lang.c++
Titolo: Devo imparare C per linux e C++...

Ciao ragazzi...
Sono appena entrato in un gruppo di sviluppo dove il linguaggio più
utilizzato è C di Linux e C++...
Io programmo in CGI, ma per parificarmi vorrei imparare questi due
linguaggi... in fretta!
Nessuno sa come posso fare? Ho scaricato "Thinking in C++" e ho comprato il
McGraw-Hill su C++ 6.0, ma non riesco ancora a capire bene...
Quello che mi servirebbe per adesso, sarebbe soltanto di capirlo, non per
forza di scriverlo...
Se mi potete aiutare fate pure...
Grazie mille....

 Grazie mille....
Devi fare pratica !!
Qualsiasi cosa va bene per cominciare !!
Newsgroup: it.comp.lang.c++
Titolo: Accesso a membri privati mediante un puntatore

Ho scritto il seguente codice.
      1 #include <iostream>
      2
      3 class Private {
      4    int a;
      5 public:
      6    Private() {a =10;};
      7    int* getP(){return &a;};
      8 };
      9
     10 int main() {
     11    Private object;
     12    int *p;
     13    p = object.getP();
     14    std::cout<<"object.a = "<<*p<<"\n";
     15
     16    return 0;
     17 }
L'output e' il seguente
object.a = 10
Il punto e' che object.a e' un membro privato della classe Private, ma posso
accederci attraverso un puntatore. Cio' e' utile se voglio accedere
velocemente alla variabile, ma potrebbe essere pericoloso dal punto di vista
di protezione dei dati privati. Credete che sia legale fare cosi'? Credete
che il C++ dovrebbe consentirlo?
Magari se consentisse di scrivere solo
 7   const int* getP(){...};
12   const int * p;
Non ci sarebbero problemi. Aspetto delle vostre considerazion, anche del
tipo...
Non c'hai capito niente.
ciao
Emanuele

 12   const int * p;
A questo punto scrivi int getValue(){ return a; } e siamo tutti
contenti,
no?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: leggere un int 8bit per volta

Ciao a tutti,
Io ho un unsigned int e devo leggere i primi, secondi, terzi e quarti 8 bit
che compongono una variabile di questo tipo, ma come si fa a leggere i bit
di questa variabile?
Naturalmente uso il c++ con il compilatore borland c++ 5.5 se puo' essere di
aiuto, ma non penso..
Grazie a chiunque verrà in mio soccorso! :P

 leggere i bit di questa variabile?
1 - isolare il byte con lo &
2 - shiftare i bit con >>
(non so decidere se e' un compito a casa, o no, percio' solo indizi :)

> per lo shift.
EMG

 wrote in message
news:3ADD57D2...@flashnet.it...


 wrote in message
news:9bk10s$ud2$07$1...@news.t-online.com...


 ora in fb.b[0] avrai 128 e cosi' via come prima.
Tutto cio' e', ovviamente, del tutto dipendente dalla piattaforma.
Ciao,
Nicola

di questa variabile?
#include <bitset>
void f(unsigned int i) {
  const int bit_char=8; // dipende dall'architettura
  std::bitset<sizeof(i)*bit_char> b(i);
  b[1]; // primo bit
  b[2]; // secondo bit
}
--
Antonio Cuni, 18 anni, studente
Brainbench Certification: 
Master C++: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
http://www.brainbench.com/transcript.jsp?pid=1301688

 (non so decidere se e' un compito a casa, o no, percio' solo indizi :)
Nooo spiega please! :P

 tmpval = var>>3;
8 bit per byte, quindi 
tmpval = var >> 8;
ed ottieni i bit 8 - 15, per i primi otto, vedi sopra :)
come antonio cuni ti ha postato, esiste anche il bitset, che trasforma 
un numero in una maschera di bit. ma dipnde da cosa ci devi fare: se ti 
serve un bit alla volta e' meglio bitset, se devi leggere un byte alla 
volta, shift e and

 }
Capito.. ma se volessi prendere 8 bit contemporaneamente? ;)
Sorry ma non sono un mago nel C/C++..

 volta, shift e and
capito..
Scusa se ti rompo ancora ma non sono un mago nel C/C++ :(
Byez

 Scusa se ti rompo ancora ma non sono un mago nel C/C++ :(
penso che nessuno al mondo possa definirsi cosi'... forse neanche BS

 1° byte  2°       3°       4°
Salvo endian-ness, neh?
-- 
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.

 Salvo endian-ness, neh?
dato il compilatore... :-) 

 Salvo endian-ness, neh?
Per la verita' ha indicato esplititamente lsb e msb. A meno di non considerare
l'indicazione 1° byte - 2° etc.  come una indicazione della posizione in memoria
(ma non mi pare che ci sia questo sottinteso) l'endian-ness non rientra nel
discorso.
--
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

 discorso.
Beh, l'avevo capito cosi'...  nei processori big-endians (big end
first) il msb e' nel primo byte, negli small-endians nell'ultimo.  E
poi ci sono i mixed-endians...  Comunque non e' detto che un intero
sia di 4 bytes, ne' un byte di 8 bits.


Tnx a lot!! :))
Newsgroup: it.comp.lang.c++
Titolo: Container ad accesso casuale ordinato

Esiste nella libreria standard (o in qualche altra libreria,boost magari)  
un container ad accesso casuale che mantenga internamente un ordinamento  
per posizione (di inserimento)?
Devo implementare una sorta di indice dove l'ordine di inserimento è  
essenziale e una semplice mappa non fa al mio caso...attualmente ho  
risolto creando una classe contenente una mappa e una lista, una cosa di  
questo tipo:
template <typename K, typename V>
class collection
{
	typedef std::map <K, V> map_type;
	typedef std::list <map_type::iterator> list_type;
	typedef std::pair <map_type::iterator, bool> pair_type;
public:
	collection();
	~collection();
	void insert(const K &key, const V &value)
	{
		pair_type result = m_map.insert(map_type::value_type(key, value));	
		if(result.second)
			m_list.push_back(result.first);
	}
	void remove(const K &key)
	{
		map_type::iterator i = m_map.find(k);
		if(i != map.end())
		{
			m_list.remove(i);
			m_map.erase(i);				
		}
	}
protected:
	map_type m_map;
	list_type m_list;
};
La lista serve ovviamente per scorrere in maniera ordinata le chiavi per  
posizione, mi chiedevo però se esistesse un metodo migliore, magari  
specificando nella mappa come "Traits" qualcosa di diverso da less (che è  
l'implementazione di default)
Grazie

 per posizione (di inserimento)?
Il tuo esempio pero' piu' che un accesso casuale implementa un accesso
per chiave. Altrimenti la risposta ovvia e' quella di usare un
std::vector. Tra parentesi se il numero di elementi non e' elevatissimo
potrebbe comunque convenire l'uso del vector e di std::find() anche
cercando per chiave. Se la mia risposta non e' esauriente devi spiegare
meglio cosa ti serve.
Ciao,
Nicola

 meglio cosa ti serve.
Hai ragione sono stato un pò impreciso...
Ho bisogno di creare un indice, prendiamo un'associazione stringa-stringa.
Il numero di elementi è variabile e può diventare potenzialmente molto  
alto.
Per fare un esempio diciamo che devo rappresentare dei links dove la  
chiave è il nome della voce e il valore l'url a cui punta: potrei usare  
una mappa ma per me è essenziale mantenere l'ordinamento con cui sono  
state inserite le voci, motivo per cui ho creato questa classe.Esite un  
metodo migliore?
 

 metodo migliore?
Quando ho avuto bisogno di qualcosa del genere non mi e' venuto in
mente niente di meglio. Nel mio caso dovevo implementare un meccanismo
di caching LRU; la lista serviva per mantenere l'ordine di accesso e la
mappa per individuare l'eventuale posizione precedente dell'ultimo
elemento utilizzato.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Inserire codice c++ in un progrmma c

e' possibile?
ho una classe c++ e vorrei inserirla in un progrmma scritto in c.
grazie ....

ho una classe c++ e vorrei inserirla in un progrmma scritto in c.
Il contrario e` possibile, visto che il compilatore C++ compila anche
codice C... il viceversa non e` vero.
Paolo

Non ha senso secondo me. Il compilatore C non sa cosa è una classe, se vuoi
risolvere il problema ottenendo un programma in C basta che "traformi" i
metodi della classe in questione in funzioni, tutto qua.
Ciao Gianni.
-- 
Posted from 
laguna.tiscalinet.it
 [195.130.224.86] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

metodi della classe in questione in funzioni, tutto qua.
Ragazzi, il nostro amico non ha specificato "compilatore C", ha
specificato "programma C", e non e' la stessa cosa.
Inserire una classe in codice scritto in C ha senso finquando si
compila il codice con un compilatore C++, facendo attenzione all'uso
delle direttive specifiche per isolare le caratteristiche C da quelle
propriamente C++.
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

codice C... il viceversa non e` vero.
Giusto, ma se il compilatore è C/C++, basta specificare la parte C come
'extern "C"' e compilare come C++, o viceversa ;-)
Ciao
Domenico Barra

ho una classe c++ e vorrei inserirla in un progrmma scritto in c.
E' possibile, usando un compilatore C.
Dai un'occhio alla direttiva extern "C".


grazie a tutti la risposta č davvero completa ...
scusate ma effettivamente non ho specificato il compilatore ...
il compilatore č il vc6 ..
ciao ...


Ho provato sotto linux con gcc 2.96 ( insomma quello di cui tanto si parla
male della redhat 7.0 )
Ho creato dei file in C++ ( con tanto di classi ) ( cl.cc )
Ho creato un file C++ ( clc.cc ) con all'interno una funzione che interagiva
con le classi di cui sopra. La funzione veniva preceduta da una
dichiarazione del tipo
extern "C" { void prova( ); }
Ho creato un file *C* ( main.c ) che richiamava la funzione prova( ) del
file clc.c; la funzione veniva dichiarata con
void prova( );
( senza l'extern "C" insomma ).
Poi ho compilato il tutto ( g++ -Wall -c cl.c ; g++ -Wall -c clc.c; gcc
-Wall main.c )
Ed ho ottenuto 3 oggetti ( cl.o clc.o main.o ); poi ho linkato il tutto con
gcc -o prova -lstdc++ main.o clc.o cl.o
main.o e' stata ottenuta dal compilatore *C*
Il tutto ha funzionato.
Insomma bisogna creare delle funzioni in stile C che lavarano con tutte le
funzioni/classi C++. Bisogna definire queste funzioni come 'extern "C"'.
Poi le si possono richiamare da normali funzioni "C". Notare che 'extern "C"'
e' una specifica C++
In questa maniera si puo' lavorare con i due ambienti C/C++.

 Dai un'occhio alla direttiva extern "C".
La direttiva extern "C" non è disponibile compilando con un compilatore
C.
EMG

C.
Syntax error.
E' chiaro che intendevo "usando un compilatore C++".
Si desume dal senso degli altri messaggi ;)


 Si desume dal senso degli altri messaggi ;)
Ah, scusa. Non me ne ero reso conto.
EMG
Newsgroup: it.comp.lang.c++
Titolo: Rhide + Win2000 ?

Aiuuuutooo! Ieri ho avuto la brillante idea di installare Win2000 sul mio
piccolo pc: avevo gia' precedentemente installato Rhide 1478 e funzionava
perfettamente, adesso invece ad ogni lancio mi scrive che la variabile DJDIR
dell'environment non e' corretta. Ho letto e smanettato per giorni ma
risultati meno di zero. Vi scongiuro aiutatemi
        Grazie
                Martino

 ha scritto nel messaggio
news:M2yJ6.8551$024.2...@news2.tin.it...

Hai provato a vedere il file autoexec.bat?
byez

Newsgroup: it.comp.lang.c++
Titolo: Come usare la scheda audio?

Come da subj. Grazie.
Scusate per tutto.
Magari l'ignoranza e la stressanza, la disturbanza... anche la deficenza!


Con quale sistema operativo la devi usare ?
Checce devi fà ?

Newsgroup: it.comp.lang.c++
Titolo: [Borland C++ Builder 3] Aiuto per

Sono un neofita col suddetto BC3 e non so come leggere dal mio eseguibile i
dati sulla versione del programma (nonche` tutti i vari parametri che posso
specificare sulle optioni del progetto).
So che esiste la funzione LoadStr, ma richiede un ID, non un nome!
Qualcuno puo` aiutarmi ?
--
__AC__
============================
Sorry: E-Mail address not available!
============================

...


...

Newsgroup: it.comp.lang.c++
Titolo: General protection exception?

Hi,
I'm learning C (Not C++ yet) and I'm having some trouble with a function.
I'm using Borland Turbo C++ 4.5. Basically it's part of a database program
which stores details about computers. The function  is meant to save each
individual record as a seperate file called "rec[record number goes in
here]". I found that I couldn't increment the number in the filename
directly, by doing something similar to:
for(y=0; y<ctr; y++)
{
    *filename="rec%d",y;
    fopen(filename);
    /*Save data operations here*/
}
The only way I could think of to do it was to create another file, and just
write to that file the filename with relevant number, and then read that
from the file to and fprintf to that filename. But, just like a true newbie,
I got something wrong and the compiler says:
General protection exception
0x5117:0xDE4
Processor fault
What's going on?
The code I wrote is as follows:
void save_data(void)
{
 int z=0;
 FILE *fp;
 FILE *incrementor;
 for (z=0; z<ctr; z++)
 {
  char filename[10];
  char incfilename[15]="c:\\increm.dat";
  if ( (incrementor=fopen (incfilename, "r+") ) ==NULL) /* Check for
successful
  file opening */
  {
   fprintf(stderr, "Error opening incrementation data file!!");
  }
  fprintf(incrementor, "rec%d.jim",z);
  fgets(filename, BUFFERLENGTH, incrementor);
  if ( ( fp=fopen (filename, "r+") ) == NULL) /* Check for successful file
  opening */
  {
   fprintf(stderr, "Oooh \'eck! Critical error opening file!!");
   exit(1);
  }
  /* Save data to file */
  fprintf(fp, "\nCPU speed: %dMHz", details[z].speed);
  fprintf(fp, "\nRAM: %dMb", details[z].ram);
  fprintf(fp, "\nCache size: %dKb", details[z].cache);
  fprintf(fp, "\nMonitor size: %d\"", details[z].monitor);
  fprintf(fp, "\nSound and video cards: %s", details[z].cards);
  fprintf(fp, "\nPeripherals attached: %s", details[z].peripherals);
  fprintf(fp, "\nSoftware installed: %s", details[z].software);
  fprintf(fp, "\nCD-ROM drive speed: %d", details[z].cd_speed);
  fprintf(fp, "\nMotherboard speed: %dMHz", details[z].moth_speed);
  fprintf(fp, "\nPrice: £%d", details[z].price);
  fclose(fp); /* Close file */
 }
As you can see, my code checks successful file opening and when it stops,
the message "Error opening incrementation file!!" is displayed, which means
that fopen returned NULL. Why would this happen?
Also could anyone tell me how to make a program that runs in DOS with Turbo
C++ 4.5?
Please e-mail all replies.
Many thanks,
Jim
P.S.
If you can think of a better way to perform the operations in the function,
could you please tell me? This was the only way I could think of.

 Please e-mail all replies.
This is extremely rude.  Because it is clear that you treat usenet as a
write-only medium and have no respect for anyone else, I have e-mailed
this, but mend your ways.  It is not in your interests to become known
as an anti-social moron.
-- 
Martin Ambuhl (
mam...@earthlink.net
)
Note: 
mam...@tiac.net
 will soon be inactive
Newsgroup: it.comp.lang.c++
Titolo: [REQ]:Compilatore GNU C/C++ per DOS

Sapreste indicarmi, per favore, da dove poter scaricare il suddetto
compilatore?
Thanks

 compilatore?
Prendi il DJGPP all'indirizzo 
http://www.delorie.com/djgpp/
.
EMG
Newsgroup: it.comp.lang.c++
Titolo: compilatore c++

ciao a tutti! volevo sapere dove reperire un compilatore C++ per windows che
sia aggiornato con standard ANSI\ISO del '97. Grazie! Ciao


http://www.borland.com
C'e' un compilatore gratuito a linea di comando che funziona benssimo.
Sono pochi Mb.
http://www.cygwin.com/
C'e' il porting di gcc, ma sono 80 Mb.
Ciao_______________
http://siena.linux.it
 -  S L U G  homepage
Leva "civetta" dal mio indirizzo.
http://dinogen.tripod.com
 - la mia homepage

Newsgroup: it.comp.lang.c++
Titolo: Consiglio SQL/C++

Se qualcuno di voi ha esperienza nel settore, vorrei sapere come posso
riempire strutture dati da DataBASE SQL e come gestirli in C++ senza dover
utilizzare per forza un Precompilatore! In altre parole come traduco Query
SQL in  C ANSI Standard?
Rispondetemi anche direttamente per favore se volete darmi un consiglio!
Grazie!

SQL in  C ANSI Standard?
Per quanto ne sappia io ci sono due modi:
1) utilizzare le librerie fornite dal produttore del database (spesso chiamate DB-Library), ad es. quelle fornite con SQL*Net di Oracle oppure Open Client di Sybase; loro forniscono .lib, .h e documentazione
2) solo su piattaforma Win32 (almeno credo!) utilizzare ODBC di Microsoft oppure il nuovissimo OLEDB (sempre di Microsoft); in questo caso c'e' sempre una libreria, la documentazione, ecc. fornita dalla Microsoft, ma avresti il vantaggio di essere (relativamente) slegato dal database; ti servira' comunque un driver ODBC specifico per il database di destinazione finale. 
   Lo schema in pratica e': il tuo programma --> libreria ODBC --> ODBC Manager --> Driver specifico di ODBC --> database
Io ho utilizzato solo il secondo metodo e mi sono sempre trovato bene; inizialmente c'erano problemi di prestazioni, ma ritengo che adesso questo aspetto sia stato superato. Inoltre esistono delle classi di MFC che interfacciano ODBC, nel caso...
Ciao e buon lavoro.
Angelo Donatiello.

]

2) solo su piattaforma Win32 (almeno credo!) utilizzare ODBC di Microsoft
Sbagli, esistono terze parti (es. OpenLink) che forniscono
il supporto ODBC su tutte le piattaforme (Unix/Linux inclusi)
Ciao
--
Marco Ermini
http://www.markoer.org
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
Newsgroup: it.comp.lang.c++
Titolo: warning:no new line at end of file

Ho un progettino che include alcuni file header (miei) ognuno dei quali
inizia con la macro del tipo :
#ifndef _THISHEADER_H_
#define _THISHEADER_H_
// .... 
e termina con:
#endif 
Cercando di compilare con gcc (credo 3.4) ottengo il seguente errore in
corrispondenza dell'istruzione #endif che termina ogni header:
\myheader.h::warning:no new line at end of file
Il messaggio è presentato come un warning, ma in realtà la compilazione
(e il linking) non vengono eseguiti.
Ciao. 
Sergio
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 \myheader.h::warning:no new line at end of file
Aggiungi semplicemente un a capo alla fine di myheader.h.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic

Newsgroup: it.comp.lang.c++
Titolo: Cerco materiale gratutito su Visual C++

Cari programmatori mooolto piu' esperti di me...
ho da poco acquistato il libro di lippman-lajoie sul C++ e lo sto
leggendocon cura, ma sono solo all'inizio.
Volevo pero', parallelamente, iniziare a programmare in Win32 con Visual
C++.
Ho visto che consigliate il Prosise ma e' troppo per le mie tasche e le mie
ayyuali conoscenze
Cosa mi consigliate per iniziare disponibili in rete? il libro di Eckel
tratta win32? non credo.
O mi consigliate di lasciare perdere Win32 e buttarmi solo cul c++, fino a
masticarlo "decentemente"?
Grazie x l'aiuto che certamente mi darete!!!
--
Ciao by Beppe
Solo chi č stupido non cambia mai idea
(Aldo, Cosě č la vita)

 Grazie x l'aiuto che certamente mi darete!!!
Potrebbe essere meglio dedicare un po' piu` di attenzione
al C++, argomento gia` di per se molto PESO.
Comunque, non mancano in rete decenti tutorial di MFC,
"ovviamente" in inglese: vedi ad esempio
http://devcentral.iftech.com/learning/tutorials/submfc.asp
Per le API di Win32, se ti interessano, prova il mio
"mezzo" tutorial in italiano (lo finiro`, un giorno,
ma non tenere il fiato -- sono mesi che non trovo il
tempo di guardarci...):
http://aleax.supereva.it/
Per qualsiasi discussione o richiesta su questi argomenti,
it.comp.programmare.win32.
Alex

tratta win32? non credo.
No.
Il Prosise è un ottimo testo. Il punto non è quanto esso costa, piuttosto quanti
testi dovresti comprare per mettere assieme lo stesso *materiale di qualità*
esposto qui. Vedi poi quanto il tutto ti verrebbe a costare e fai tu un due
conti. Certo, se poi quello che cerchi è qualcosa del tipo "La grande guida
a..." stile Schildt... ;-)
AB
--
-------------------------------------------------------------
   Andrea Baruzzo
   Via Circonvallazione, 26
   Muzzana del Turgnano (UD) - Italy
   e-mail: 
andrea....@ud.nettuno.it
   home: 
http://www.dimi.uniud.it/~baruzzo
-------------------------------------------------------------

masticarlo "decentemente"?
Infatti... concentrati sul C++, non ti pare gia' sufficientemente
corposo?
Paolo
Newsgroup: it.comp.lang.c++
Titolo: Creazione di grafici

CIAO A TUTTO IL NG!
Sono abbastanza niubbo per quanto riguarda il C++.
Volevo creare un applicazione che creasse dei grafici per delle funzioni,
qualcuno mi saprebbe consigliare innanzitutto la libreria da usare (se non
ho capito male con la conio.h si può fare qualcosa...), e magari se qualche
anima pia ha tempo di scrivermi qualche stralcio di codice che mi possa
essere utile...
Un grazie a tutto il ng.

con la conio.h puoi solo scrivere colorato,o riempire lo scermo un con
buffer di caratteri e qualche altra cavolate, non puoi ne accendere
pixel,
ne tantomeno tracciare linee.
Se devi fare qualcosa per dos, puoi usare il buon vecchio turbo-c,
assieme
alle librerie (non ricordo il nome, credo siano EGAVGA o qualcosa
simile).
Ciao.
HellScream
C++C++C++C++C++
OpenGL 3D Coder
C++C++C++C++C++
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 essere utile...
Prima di pensare alla grafica dovresti prima pensare a come immetterle e
leggerle. Se decidi la funzione da tracciare in fase di compilazione il
problema non si pone quasi mentre se vuoi immetterla in fase di esecuzione è
meglio che dai un'occhiata a qualche (generatore di) parser o roba affine.
Bye
Antonio
ps avevo fatto qualcosa del genere ma in VB

Newsgroup: it.comp.lang.c++
Titolo: Domanda: Scope di un oggetto

scomparire quando si esce dalla funzione o no?
Il tuo oggetto scompare quando lo scope in cui l'hai dichiarato finisce. Se
lo scope è una funzione, l'oggetto cessa di esistere quando la funzione ha
termine, viene chiamato automaticamente il distruttore e qualunque
riferimento all'oggetto è illegale - l'oggetto è stato distrutto.
Se invece lo allochi con new, l'oggetto rimane fino a quando non lo cancelli
esplicitamente chiamando delete su un puntatore ad esso.
Lanugo

Se creo un oggetto dentro ad una funzione in questo modo:
    CMyClass obj;
e tento di passare il puntatore a questo oggetto fuori della funzione..il
puntatore e' ancora valido? L'oggetto dovrebbe finire nello stack
scomparire quando si esce dalla funzione o no?
Se invece l'oggetto lo creassi cosi' ?
    CMyClass *p = new CMyClass
Il puntatore ora posso esportarlo ?
--
Visita la mia pagina personale:
 
http://members.xoom.it/Ake
*** grafica - ingegneria - midi - humour ***
****  abandonware - emulatori - MUD ****
 ***             DragonBall / Z                ****
Il Covo di Ake ora e' anche senza fili,
visitalo con il tuo cellulare WAP a:
 
tagtag.com/ake
Newsgroup: it.comp.lang.c++
Titolo: C++ per Mac ?

Ciao NG
Qualcuno di voi programma in c++ sutto piattaforma mac ?
Se si, che strumenti usate ?
Si possono trovare anche free ?
ciao e a presto
Maurizio

 Se si, che strumenti usate ?
CodeWarrior (
www.metrowerks.com
)
Fausto

ma non č free 


 
Infatti ho solo risposto alle prime due domande della tua mail.
Fausto


Ciao Maurizio, io sono quello che fa per te dunque:
Come ambiente di sviluppo ti posso certamente dire che il piu' usato e' il
CodeWarrior per il C++ (che non e' free), come free puoi trovare MPW della
Apple, ma non e' molto usato. Oppure il pluririnomato GNU!

Newsgroup: it.comp.lang.c++
Titolo: Assembler in Visual C++

Ho sentito che si può scrivere in assembler con il visual c++ Sei si come?
Grazie (Ho visual C++ prof 6.0)

__asm
maglio usare asm (senza underscore) che e` la keyword standard.
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------


prova con la parola chiave prima dei comandi in assembler
asm

 Perchè il doppio underscore prima della parola chiave "asm"?
Il Visual C++ 6 supporta solo le keyword '_asm' e '__asm', ma non 'asm'. Da
quello che c'è scritto nell'MSDN queste keyword sono "Microsoft Specific".
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

 meglio usare asm (senza underscore) che e` la keyword standard.
Sicuramente sarà meglio, ma il VC++ non la accetta!!!!


Sicuramente sarà meglio, ma il VC++ non la accetta!!!!
Vabbe` che non tutti i compilatori sono molto standard, pero`
ignorare addirittura una keyword!!!!!!


...

Infatti l'help in linea recita un salomonico...
"Note   Microsoft C++ does not support the AT&T C++ asm keyword."
Ora che asm non è soltanto una specifica del C++ targato AT&T, ma è stata
addottata anche dallo standard ANSI/ISO C++, credo che non passerà molto tempo
prima di vederla comparire anche in VC++ (7.0?).
AB
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andrea Baruzzo
Via Circonvallazione, 26
Muzzana del Turgnano (UD) - Italy
e-mail: 
andrea....@ud.nettuno.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Newsgroup: it.comp.lang.c++
Titolo: API windows

Non riesco a risolvere un broblema. Qualcuno puņ aiutarmi?
Stņ realizzando un programma C++ che utilizza le API windows e
ho un errore alla riga:
    DialogBox(hInst,"MYDB",hwnd,DialogFunc);
Di seguido i messaggi del compilatore:
[C++Error] PMenu.cpp(89): Cannot convert 'int (__stdcall *)(void *,unsigned
int,unsigned int,long)' to 'int (__stdcall *)()'.
[C++Error] PMenu.cpp(89): Type mismatch in parameter 'lpDialogFunc' in call
to '__stdcall DialogBoxParamA(void *,const char *,void *,int (__stdcall
*)(),long)'.
Sembra che il compilatore si aspetti per il parametro DialogFunc sia un
puntatore
ad una funzione senza argomenti, mentre DialogFunc argomenti ne ha perchč č
la
funzione finestra della finesta di dialogo di seguito definita:
BOOL CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM);
Sto utilizzando il compilatore C++Buider3.
Grazie dell'attenzione.

 Stņ realizzando un programma C++ che utilizza le API windows e
...e ti sei scordato un #define STRICT prima di includere
<windows.h>.  Con i release piu` recenti di Visual C++ e
del Platform SDK e` il default, con quelli precedenti no.
Prova con il #define in questione e le cose miglioreranno
(i consigli di questo tipo abbondano nel mio tutorial, la
cui parte che ho scritto sinora, solo 40 capitoletti, e` su
http://aleax.supereva.it
).
Alex

 
http://aleax.supereva.it
).
A proposito: a quando la prosecuzione?
EMG

 A proposito: a quando la prosecuzione?
A quando recupero un po' di tempo libero e di energia... no
promises!-)
Alex
Newsgroup: it.comp.lang.c++
Titolo: Handle

Ciao a tutti,
sento e leggo sempre la parola HANDLE.
Cosa si deve intendere per Handle di una finestra oppure di un menù?
Sono agli inizi e dai libri in inglese non capisco cosa intendano per
handle.
Sembra ci sia un Handle di tutto.!!!
Se qualche amico mi risponde prego lo faccia in maniera semplice ma
esauriente a vedere se lo capisco.
Grazie.
Andreas

 sento e leggo sempre la parola HANDLE.
Un handle è un identificatore univoco che individua l'istanza
particolare dell'oggetto in esame. Senza questo valore non è possibile
eseguire le operazioni su quell'oggetto (ad esempio, l'handle del file
nella libreria standard del C è di tipo FILE *). Normalmente in C++ il
concetto di handle è incapsulato nella classe di appartenenza e quindi
non c'è quasi mai necessità di gestirlo direttamente (esempio analogo a
quello di cui sopra è la classe fstream). Questo, naturalmente, se le
classi sono scritte bene (quindi il discorso non vale per le MFC...).
EMG

Andreas
In Windows un Handle è un numero che fa riferimento ad un particolare
oggetto allocato in memoria. Per esempio un'icona: non sei tu che nel tuo
programma devi avere una struttura grande abbastanza per contenere le
informazioni riguardanti tutti i pixel, bensì è il Windows che memorizza le
info della tua icona e a te ritorna solo un numero, l'handle appunto, che fa
riferimento a quell'icona. Così quando devi compiere qualche operazione ti
basta passare alla funzione in questione solo l'Handle a quell'icona, e
Windows saprà dove andare a cercare.
Semplificando ancor di più è come se Windows tenesse una lista di tutte le
icone (e in alcuni casi è così) e a te facesse conoscere solo la posizione
(l'Handle) che la tua icona occupa. Lo stesso discorso vale per tutti gli
altri oggetti (bitmap, menu, finestre, ecc...).
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

Andreas
C'e' una descrizione lunga e accessibile nella mia rubrica Q&A sul prossimo
numero del VCDJ. Non posso passarti l'articolo prima per motivi di
copyright, comunque tieni d'occhio 
http://www.vcdj.com
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: setw()

E' normale che il manipolatore setw() non funzioni con il tipo
std::string ma solo con il char *?
EMG

 std::string ma solo con il char *?
Non mi pare.  Che implementazione usi???  Con VC++6:
dato il codice [snippet]:
    const char* p="ciao";
    std::string s("Ciao");
    for(int i=0; i<=12; i+=3) {
        std::cout << std::setw(2) << i << ' ';
        std::cout<<std::setw(i);
        std::cout<<p;
        std::cout<<"\n";
        std::cout << std::setw(2) << i << ' ';
        std::cout<<std::setw(i);
        std::cout<<s;
        std::cout<<"\n";
    }
si ha l'output (come previsto):
 0 ciao
 0 Ciao
 3 ciao
 3 Ciao
 6   ciao
 6   Ciao
 9      ciao
 9      Ciao
12         ciao
12         Ciao
Alex

 Non mi pare.  Che implementazione usi???
Ho capito. E' un altro buco della libreria standard fornita con il
DJGPP... :-(
EMG

Newsgroup: it.comp.lang.c++
Titolo: Sono nuovo, aiuto!

Salve a tutti i frequentatori di questo newsgroup.
Sono un utente di Macintosh ed ho intenzione di avvicinarmi al C++.
Due domande:
a) Dove posso trovare online (possibilmente freeware) un compilatore per il
Mac?
b) Qual e' il testo migliore che abbia un'impostazione tutorial (e non
troppo tecnico)?
Premetto che so poco di C (ne imparai un po' in un esame all'universita').
Grazie.
-- 
Claudio Massafra
cmas...@libero.it
go to my web site:
http://digilander.iol.it/vinnimur
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
B69C4760.562%cmas...@libero.it...


 Corso di programmazione 2* edizione della addisey
Questo non e' il Lippmann? Esiste la 3 edizione, la seconda e'
decisamente vecchiotta.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ Builder 4: Dove Sbaglio?

Ciao a tutti. Sono un neofita del Builder 4 e del C++ in generale. Mi
sono trovato di fronte al problema di creare un bottoncino al volo e non
so come poterlo fare. Ho provato a scrivere un codice che pensavo
funzionasse ma purtroppo il bottone non viene visualizzato. Credo che
venga creato ma non so per quale motivo non riesco a vederlo. Il codice
e` il seguente:
  ...
  TBitBtn *bb=new TBitBtn(Panel1);
  bb->Visible=TRUE;
  bb->Width=50;
  bb->Height=50;
  bb->Top=0;
  bb->Left=0;
  bb->BringToFront();
  bb->Caption="Prova";
  ...
Dove sto sbagliando? Forse dimentico di fare qualcosa? Ringrazio in
anticipo tutti coloro vorranno darmi una mano.
Ciao
  Roberto.

 ...Forse dimentico di fare qualcosa?
Prova ad aggiungere:
bb->Parent=Panel1;
Nota: In questo Newsgroup sei OT.  Per questioni inerenti l'ambiente
Borland C++ Builder dovresti postare su  it.comp.programmare.win32.
Ciao.
Babylon

 Babylon
Ciao
  Roberto.
Newsgroup: it.comp.lang.c++
Titolo: cin e gets()

Ciao, vi volevo chiedere una cosa:
dovrei acquisire una stringa tramite codice C++, ho utilizzato
   cin >> str;
ma, come già sapevo, ha acquisito tutti i caratteri fino al primo spazio,
con codice C il problema si risolve utilizzando la funzione gets() che però
è anche sconsigliata perchè non effettua verifiche di fuoriuscita
dall'array.
con il C++ come dovrei fare a far acquisire tutto il testo fino alla
pressione del tasto INVIO?
[OT]. nel caso qualcosa non vada bene nella terminologia, tipo l'uso del
termine acquisire, ecc... me lo fate notare? dicendomi i termini giusti?
così le prossime volte mi faccio capire meglio! eh sì, perchè di prossime
volte credo ce ne saranno parecchie! ;)
ciao e grazie!
<---
+-sent by sgrung
 |
 `- 'Sono stato nessuno per diventare qualcuno'
--->

 pressione del tasto INVIO?
In vari modi.  Uno e' questo (ammesso di avere #incluso quello che
c'e' da #includere, e con using namespace std;):
string s;
while (getline(cin, s)) {
  // processa s
}
Un altro e':
const size_t LENGTH = 128; // o quello che serve
char buffer[LENGTH];
while (cin->getline(buffer, LENGTH)) {
  // processa buffer
}
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
Murphy's law: "Anything that can go wr
/bin/fortune: segmentation fault - core dumped

 pressione del tasto INVIO?
Con la funzione getline() o con il metodo getline() della classe
istream.
EMG

 while (cin->getline(buffer, LENGTH)) {
while (cin.getline(buffer, LENGTH)) {
EMG



Ugh!  Scusa - maledetta fretta di rispondere   :-(


   cin >> str;
std::string str;
std::getline(cin, str);
Paolo

 }
e se non conosco la lunghezza della stringa?
è possibile oppure dimensionono molto in eccesso il buffer?
grazie
Davide®

 writes:

Cosa vuol dire "se non conosco la lunghezza della stringa"?  Le
std::string aumentano il loro storage in maniera appropriata; la
lunghezza della string in ogni istante e' s.size().
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
A C++ exception is when the code gets in trouble and says:
"Beam me up, Scotty!".

 writes:

Usa l'altro metodo; una std::string cambiera' il suo storage
automaticamente per contenere l'input, e le sue dimensioni sono
date da s.size() .
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
A C++ exception is when the code gets in trouble and says:

Newsgroup: it.comp.lang.c++
Titolo: Manuali Visual C++ 4.0

Sto cercando manuali sull'ambiente di sviluppo Visual C++ 4.0 poiche'
l'help in linea oltre ad essere in inglese e' praticamente inutilizzabile;
cerco un buon testo in italiano che aiuti a scoprire tutto cio' che e'
possibile fare in MSDev e dica come farlo; non cerco un testo di C++ e
neppure di MFC (ce li ho gia'); ringrazio anticipatamente chi volesse
rispondermi; preferirei riposte via Email:  
rpla...@mailarcadiatel.it
.
 

rispondermi; preferirei riposte via Email:  
rpla...@mailarcadiatel.it
.
Non dico così per fare polemica, ma piuttosto che cercare dei
libri in italiano ti conviene studiarti un po' di inglese. I
testi in italiano arrivano --e se arrivano andiamo già bene--
quando in inglese è uscita l'edizione successiva o quando i
programmi sono passati a release successive. E spesso le
traduzioni fanno pietà. Consiglio spassionato a parte, secondo me
dovresti cercare tra i libri della Microsoft Press: sono gli
unici --tra quelli che ho visto-- che sono fatti molto bene anche
in italiano, anche se sono molto cari.

in italiano, anche se sono molto cari.
sono d'accordo, sono abbastanza ben fatti ma molto cari.
Gianpaolo Bottin
- Live Long and Prosper -

Neanch'io voglio far polemica, ma se mi serviva il consiglio di imparare
l'inglese non lo avrei certo atteso da Internet; in quanto all'aggiornamento
dei manuali, come vedi io cerco manuali per VC++ 4.0 quando ormai è in giro
il 5.0; evidentemente i miei progetti sono diversi dai tuoi; ti ringrazio lo
stesso e se tra i testi di MS Press ne conosci uno buono indicamelo perchè
io ne ho già visti un pò, ma non sono quello che cercavo (altrimenti non
avrei cercato aiuto).
Ciao e buon tutto.


Hai provato Il manuale Visual C++4.00 della McGrawHill di Murray e Pappas?
Ciao
Stefano
Per rispondermi direttamente sostituire kant a russel in
ste...@color.irmrussel.rm.cnr.it
Newsgroup: it.comp.lang.c++
Titolo: Problema con le OpenCV

Salve a tutti, premetto che sono alle prime armi.
Sto tentando di ricompilare le OpenCV di Intel con il dev
kit per la PSP.
Mi sono procurato due dev-kit per PSP, uno basato sul
compilatore GCC 3.4.4, ed uno basato sul compilatore
GCC 4.0.
Prima ho preso il codice del Dev-C++, ho estratto le
directory che contengono il compilatore GCC (comprese
le librerie, gli include files, ecc. ecc.) ed ho lanciato la
compilazione delle cxcore da linea di comando
mingw-make -f makefile.gcc
E fin qua tutto bene. Il compilatore su cui č basato il Dev
č il GCC 3.4.2 per Intel x86.
Poi ho provato a fare la stessa cosa con il dev-kit per PSP.
In realtą, non ho provato subito a compilare tutto. Ho modificato
il makefile in modo che venisse compilato solo un piccolo
pezzetto delle cx-core (cxalloc.cpp).
A questo punto ottengo degli errori dal compilatore. Sembra che
ci siano problemi nella direttiva EXTERN "C".
Per esempio in cxtypes.h (righe 1680-1689):
#ifdef __cplusplus
extern "C" {
#endif
typedef int (CV_CDECL *CvIsInstanceFunc)( const void* struct_ptr );
typedef void (CV_CDECL *CvReleaseFunc)( void** struct_dblptr );
typedef void* (CV_CDECL *CvReadFunc)( CvFileStorage* storage, CvFileNode*
node );
typedef void (CV_CDECL *CvWriteFunc)( CvFileStorage* storage, const char*
name,
                                      const void* struct_ptr, CvAttrList
attributes );
typedef void* (CV_CDECL *CvCloneFunc)( const void* struct_ptr );
#ifdef __cplusplus
}
#endif
Si ottiene questo errore dal compilatore:
./include/cxtypes.h:1680: error: expected `)' before '*' token
../include/cxtypes.h:1680: error: expected `,' or `;' before '*' token
../include/cxtypes.h:1681: error: expected `)' before '*' token
../include/cxtypes.h:1681: error: expected `,' or `;' before '*' token
../include/cxtypes.h:1682: error: expected `)' before '*' token
../include/cxtypes.h:1682: error: expected init-declarator before '*' token
../include/cxtypes.h:1682: error: expected `,' or `;' before '*' token
../include/cxtypes.h:1683: error: expected `)' before '*' token
../include/cxtypes.h:1683: error: expected `,' or `;' before '*' token
../include/cxtypes.h:1685: error: expected `)' before '*' token
../include/cxtypes.h:1685: error: expected init-declarator before '*' token
../include/cxtypes.h:1685: error: expected `,' or `;' before '*' token
../include/cxtypes.h:1697: error: `CvIsInstanceFunc' does not name a type
../include/cxtypes.h:1698: error: `CvReleaseFunc' does not name a type
../include/cxtypes.h:1699: error: `CvReadFunc' does not name a type
../include/cxtypes.h:1700: error: `CvWriteFunc' does not name a type
../include/cxtypes.h:1701: error: `CvCloneFunc' does not name a type
Secondo voi qual č il problema?
Grazie a tutti
Bayron

 Secondo voi qual è il problema?
Potrebbe non risultare definito il simbolo CV_CDECL.
Per verificarlo, prova a mettere all'inizio del codice
#define CV_CDECL
oppure a definirlo con un'opzione di compilazione.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila
Newsgroup: it.comp.lang.c++
Titolo: Concatenare stringhe ricevute via socket

Ciao a tutti,
ho un domanda, forse banale.
Sto scrivendo un'applicazione per lo scambio di messaggi via socket.
Per la ricezione dei messaggi uso un ciclo che legge dal socket finchï¿œ 
ci sono dati a "pacchetti" di dimensione BUFFERSIZE
void Socket::receive(char response[])
{
         int i,l=1;
         char msg[BUFFERSIZE];
         do
	{
                 l = read (sd, msg, BUFFERSIZE - 1);
                 if(l==0) break ;
                 msg[l]=0;
		// QUI DOVREI CONCATENARE msg A response MA COME????
         } while (l !=0);
}
Come posso concatenare le stringhe ricevute in modo che alla fine della 
funzione in response abbia tutto quello che ï¿œ stato ricevuto?
Grazie!

 funzione in response abbia tutto quello che � stato ricevuto?
Usa la classe string.
#include <string>
void Socket::receive(std::string response) {
    // Codice che legge
   // Qui puoi concatenare
    response += msg;
}
Newsgroup: it.comp.lang.c++
Titolo: Scope di classi interni ai namespaces...

Salve,
sto cercando di sviluppare una libreria che implementa unn particolare tipo
di albero in C++. Beh, ho definito un opportuno namespace per tutte le
classi della libreria e vorrei dare al cliente la maggior trasparenza
possibile nell'utilizzarla. Tuttavia ho un problemino con la visibilita'
delle classi. In particolare vorrei che la classe Node (rappresentante
ovviamente i nodi dell'albero) non fosse accessibile da chi utilizzasse la
libreria... Ricordo che in Java ci riuscivo in qualche modo creando classi
private interne ai packages... Ed in C++ ? Qualcosa di banale forse mi
sfugge...
-- 
Grazie in anticipo per le eventuali risposte. :)


Usa una classe annidata nella sezione private della classe principale.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Linux registered user 299762 @ Linux registered machine 213003

 Grazie in anticipo per le eventuali risposte. :)
Ciao.
// Esempio di classe ad uso privato
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
class mia_stringa
{
        friend class test;
        int len;
        char* ptr;
        protected:
        mia_stringa(const char* a)
        {
                len=strlen(a);
                ptr=new char[len+1];
                for(unsigned int i=0;i<len;++i)
                        ptr[i]=a[i];
                ptr[len]=0;
                cout << "costruttore mia_stringa: OK\n";
        }
        ~mia_stringa()
        {
                delete [] ptr;
                cout << "distruttore mia_stringa: OK\n";
        }
        public:
        friend ostream& operator<<(ostream& out,const mia_stringa& s)
        {
                return out << s.ptr;
        }
};
class test
{
        mia_stringa prova; // io posso costruire la classe mia_stringa e tu
no!!
        public:
        test() : prova("ciao")
        {
                cout << prova << endl;
        }
};
int main()
{
        test a;
        //mia_stringa b("prova"); // questa riga darebbe un errore.
        std::cin.get();
        return 0;
}



Non c'è un modo simile in C++ per fare la stessa cosa :(
Se la classe Node è usata da una sola altra classe (ad esempio la classe
Tree), allora puoi definire la classe Node nella parte privata di Tree.
Se questo non è il caso, allora devi affidarti non a costrutti del
linguaggio ma a pattern di programmazione particolari (cioè devi
complicare un pò le interfacce).