mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: string Standard c++ library

In una applicazione per passare una stringa ad una funzione di libreria
utilizzo questo metodo
char cInsert[500];
strcpy(cInsert,"AAAAAAAAAAAA");
strcat(cInsert,"BBBBBBBBBBBB");
.....
int hstmt = qeSQLPrepare(hdbc,cInsert)
....
qeSQLPrepare è cosi dichiarata:
 int16 hstmt qeSQLPrepare(int16 hdbc, ptrstr stmt)
dove stmt is a null-terminated character string
Ovviamente non è una gran bella cosa utilizzare char cInsert[500];
rischiando anche che la stringa sia + lunga in futuro...
Quindi pensavo di scrivere queste parti di codice in maniera + decente
utilizzando la classe string del standard c++ library...
Nel comporre la stringa non ho nessun problema, ma sono in difficoltà quando
devo far digerire la mia stringa (string) alla funzione qeSQLPrepare come
secondo parametro
che vuole un char *, attenzione non un const char*.
Come posso fare?
Preferire trovare una soluzione utilizzando la standard c++ library
Grazie.
Ciao
Terenzio

che vuole un char *, attenzione non un const char*.
Deve veramente modificare il buffer che le passi, o e` solo
scritta coi piedi?
Nel secondo caso, usa il membro c_str() della tua std::string,
in un const_cast fatto per togliergli "formalmente" la caratteristica
di costante.  Ma, se la funzione che chiami ha _veramente_
bisogno di modificare il buffer che le passi, questa "soluzione"
potrebbe rivelarsi disastrosa (dipende dall'implementazione
della std::string sulla libreria standard che usi, e non e` il caso
di farci delle scommesse).
Se devi passare a una funzione un buffer di caratteri, che essa
modifica, _inizializzando_ pero` dapprima questo buffer con il
contenuto di una std::string, un approccio e`:
    int bufsiz = 1+lastring.size();
    char *buffer = new char[bufsiz];
    memcpy(buffer, lastring.c_str(), bufsiz);
    chiamalafunzionechemodificaqualcosa(bufsiz, buffer);
    // usa in qualche modo buffer, poi, quando hai finito:
    delete[] buffer;
Alex
Newsgroup: it.comp.lang.c++
Titolo: Come spostare una finestra di dialogo

Qualcuno saprebbe dirmi come si possa spostare a piacimento una 
risorsa di dialogo?
Io utilizzo il compilatore C++ Borland 4.5 e dopo avere creato il
dialogo TDialog con il Resource Workshop non riesco a spostare la
finestra di dialogo dove voglio io (in maniera dinamica), magari
memorizzando l'ultima posizione.
Grazie a tutti (anche a chi non conoscesse la risposta...)
Marco Rossi.
--
Posted from 
fortuna.affari.com
 [195.250.233.20]
via Mailgate.ORG Server - 
http://www.mailgate.org

Semplicemente SetWindowPos(..)
BOOL SetWindowPos(
  HWND hWnd,             // handle to window
  HWND hWndInsertAfter,  // placement-order handle
  int X,                 // horizontal position
  int Y,                 // vertical position
  int cx,                // width
  int cy,                // height
  UINT uFlags            // window-positioning flags
);
Nel uFlags  metti SWP_NOSIZE , in modo che cx e cy vengano ignorati, e la
finestra non venga ridimensionata.
in hWndInsertAfter io ci metto un bel NULL, ma se leggi la documentazione
puň darsi che ti viene qualche idea piů addata alle tue esigenze.
byebyte

...


Newsgroup: it.comp.lang.c++
Titolo: Borland BDE

Dove posso trovare il pacchetto di istallazione di BDE?
--
Posted from 
mta03-acc.tin.it
 [212.216.176.34]
via Mailgate.ORG Server - 
http://www.mailgate.org

>Dove posso trovare il pacchetto di istallazione di BDE?
Su 
borland.com
, ovviamente, ma ora l'indirizzo preciso non lo ricordo. Parti
da "download" e cerca per BDE & utils o qualcosa di simile.
Ciao.
--
Stefano Tempesta
PC Service Software
http://www.tempesta.cc.st
ste...@pcs-online.it
Newsgroup: it.comp.lang.c++
Titolo: Ancora sull'ereditare i costruttori.

Salve.
Ripropongo la solita minestra dell'ereditarietà dei costruttori.
Nonostante abbia girato per le news ancora non ho capito bene perché
sia necessario ridefinire il costruttore in tutte le classi derivate
nonostante esso possa essere in teoria sintetizzato dal compilatore
(ma forse sbaglio).
In particolare sto definendo una gerarchia di classi. Poiché non so
ancora bene cosa mi servirà sono costretto ad apportare alcune
modifiche di continuo e sono costretto a propagare le modifiche quando
queste interessano i costruttori. Provengo da un linguaggio che adotta
il modello ad oggetti per riferimento e non riesco a capire perché, in
questo caso diverso, il differente approccio si riflette
sull'impossibilità di ereditare un costruttore.
Per esempio:
class A {
  public:
    A(A* a);
}
La domanda è: perché ereditando una classe B da A non posso evitare di
scriverne il costruttore sperando che il linguaggio capisca ciò che
voglio fare? Se mi permette addirittura di omettere il costruttore e
ne sintetizza uno da sé, perché in questo caso diventa così
suscettibile?
Inoltre, bisogna stare attenti a qualcosa in particolare quando si
decide di realizzare il costruttore della classe derivata nel seguente
modo?
class B: public A {
  public:
    B(A* a);
}
anziché come:
class B: public A {
  public:
    B(B* b);
}
Grazie,
Marcello.

 suscettibile?
Perche' non esiste un'interpretazione univoca delle tue intenzioni, per
cui qualsiasi scelta da parte del compilatore sarebbe arbitraria. Ad
esempio
class B : public A {
  B() : A(0) {}
  B(A * a) : A(a) {}
};
Quale dei due costruttori avrebbe dovuto generare il compilatore?
Ciao,
Nicola


 Quale dei due costruttori avrebbe dovuto generare il compilatore?
Il secondo direi.
O magari poteva sintetizzare
  B(B* b): A(b) {}
Ciao,
Marcello.
Newsgroup: it.comp.lang.c++
Titolo: Http e C

ciao
cerco una guida su come interagire coll http col C
grazie

 
La stai cercando nel posto sbagliato....
Qui parliamo di C*++* standard.

Newsgroup: it.comp.lang.c++
Titolo: [static e template]problemi in un metodo

Ciao a tutti,
mi si presenta un errore strano nell'uso di una funzione statica attraverso
un template
class ResourceDriven
{
	public:
		virtual list<ResourceRequest*>* getResourceRequests() = 0;
		virtual int getPriority() = 0;
		template < typename T >
		static void sort(list<T*>* lstTransition) { /* implementazione */};		
		static void funge() {cout << "funge";};  
};
int main() {
/*
dichirazioni..
*/
ResourceDriven::funge()  // questo mi funziona perfettamente
ResourceDriven::sort(lstTransition);  // errore in compilazione
return 0;
}
Mi presenta questo errore nell'uso della funzione statica sort(...)
C:\DOCUME~1\pino\LOCALS~1\Temp/ccorbaaa.o(.text+0x6bb):main.cpp: undefined
reference to `void
ResourceDriven::sort<pTPNTransition>(std::list<pTPNTransition*,
std::allocator<pTPNTransition*> >*)'
non riesco a capire dove sbaglio...


ho risolto il problema facendo cosě
class ResourceDriven
{
	public:
		virtual list<ResourceRequest*>* getResourceRequests() = 0;
		virtual int getPriority() = 0;
		template<class T>
		static void sort(list<T*>* lstTransition)
		{
			/** implementazione ***/
		};
};
purtroppo ricevo degli warning piuttosto "fastidiosi"...faccio un post a
parte.

 attraverso un template
Potresti postare un esempietto compilabile del problema?
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
Newsgroup: it.comp.lang.c++
Titolo: C++ e linux

Non sono pratico della programmazione su Unix e in particolare Linux, vorrei
fare un programma che in pratica analizza un file di testo e ne crea due in
base a certe operazioni.
L'unica cosa che mi chiedo č:
Ci sono differenze sostanziali tra le procedure di utilizzo dei file in C++
rispetto alla piattaforma Dos/Win9x?
--
| /
| \Byte - Andrea Briganti - 
kbyt...@freemail.it
http://members.xoom.it/kbytesystem
ICQ: 40872731 - C6: andreakbyte

rispetto alla piattaforma Dos/Win9x?
Se ti limiti a tutto cio' che e' standard, assolutamente no.
Altrimenti lo standard non sarebbe tale.

Newsgroup: it.comp.lang.c++
Titolo: Intercettare gli accessi al filesystem

Devo realizzare una applicazione che mi permetta di intercettare tutti
gli accessi al filesystem . Questa applicazione potrebbe per esempio
richiedere una password per fornire l'accesso al filesystem. Come
posso fare?
Come sistema operativo mi interessa solo per windows Xp.
Aiutatemi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 posso fare?
piccola curiosità : il tuo programma dovrebbe/potrebbe eseguire 
il boot PRIMA del sistema operativo ?
Per il resto non so aiutarti, scrivere driver a così basso 
livello era già molto difficile coi vecchi windows che manco 
erano multitasking in maniera vera e propria e ti lasciavano 
fare molto.
L'unico suggerimento (banale) che posso darti è : cerca in rete 
se esiste un antivirus (con guardia residente) opensource, e 
prova a studiarne il codice. A me, per uno che non sa proprio 
manco da dove partire (o almeno è l'impressione leggendo il 
post) l'obiettivo che ti poni sembra di quei compiti dove alla 
fine non si cava un ragno dal buco. Ma ti faccio gli auguri !
ciao
Soviet


Newsgroup: it.comp.lang.c++
Titolo: fstream di stringhe

input di stringhe da file.
come si può fare per salvare e successivamente recuperare alcune
stringhe da un file (non conoscendone la dimensione a run-time)?
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
	string fname, s1, s2;
 
	cout << "Nome del file (senza estensione): " << endl;
	cin >> fname;
	cout << endl << endl;
 
	cout << "inserire una stringa:" << endl;
	cin >> s1;
	cout << endl << "inserire un'altra stringa:" << endl;
	cin >> s2;
 
	ofstream out(fname.c_str());
	out << s1;
	out << s2; 
	out.close();
 
 
	ifstream in(fname.c_str());
	// input da file???
	in.close();
 
return 0;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

<code>
#include <vector>
---
ifstream in ( fname.c_str () ) ;
string temp ;
vector<string> testo ;
while ( !in.eof () ) {
  in >> temp ;
  testo.push_back ( temp ) ;
}
in.close () ;
</code>
ATTENZIONE:
La classe "vector" contiene dati senza sapere quanti ne verranno
inseriti e tutto a runtime.
Newsgroup: it.comp.lang.c++
Titolo: MSVC5 Tabbed Dialog

Salve a tutti.
Vi racconto un mio problema ;-)
Tempo fa mi stavo cimentanto in un dialogo contenente un controllo
"tab-control" (quelli che ti fanno risparmiare tanto spazio, ma non tempo) e
pensavo (povero me illuso) di poterli gestire con la stessa semplicità del
VB.
Ma dopo le prime ore di "accidenti" a qualcuno che aveva a che fare con lo
sviluppo del compilatore C++, ho piantato lì il tutto, anche perché avevo
cose + urgenti.
Nel pacchetto di "accidenti" inviato a quel qualcuno, c'erano anche quelli
per i mancati esempi che normalmente sono riportati a corredo del
compilatore.
Io immagino che mi devo creare tanti dialoghini, tutti ugualini, da
swicciare nel controllo alla premuta dei tastini. Ho capito bravo ?
Se qualche anima pia, ha qualche parola di conforto, è ben accetta.
Un salutone a tutti.

 VB.
[snip]
Utilizza il menu
Project -> Add to project -> Components and controls
a questo punto scegli la cartella [Visual C++ Components] e al suo
interno trovi il componente [Property Sheet].
Aggiungendo questo componente al progetto puoi definire un dbox con i
tab e la gestione non e' molto diversa da quella di un normale dbox.
massimo

Ok, Massimo grazie del suggerimento.
Le cose cosě vanno meglio;
vorrei chiederti un parere : quale controllo tabbed preferisci per usare il
tutto ?

swicciare nel controllo alla premuta dei tastini. Ho capito bravo ?
Si', ma il modo (relativamente) semplice per farlo e' di usare le
classi CPropertySheet e CPropertyPage delle librerie MFC; il
CTabCtrl "nudo" non te lo consiglierei.  Gli esempi di codice da
consultare sono FIRE per il tab-control (e gli altri common
control avanzati piu' o meno nudi) e CMNCTRLS per le property
sheet -- comunque la doc in linea del VC++5 su CPropertySheet
e compagnia e' piu` che decente.
Alex

Ok, grazie.
L'esempio "Fire", comunque, l'avevo spulciato ma non mi è stato di aiuto;
sicuramente perché il mio approccio è stato da smanettone e non da
accademico.
Saluti.
Newsgroup: it.comp.lang.c++
Titolo: [OT (forse)] Chiarimenti

Salve a tutto il NG
Sono nuovo e vi prego di scusarmi per l'argomento
penso OT ma sinceramente ho bisogno di un
chiarimento da persone  esperte.
Dopo anni di programmazione con altri linguaggi
mi sono riavvicinato al C / C++ in questi giorni,
mi sono procurato il compilatore Borland C++ 5.5
free e provando a scrivere alcune stupidissime applicazioni
mi sono sorti una marea di dubbi.
Vorrei un semplice chiarimento su alcuni aspetti della
programmazione con Borland C++ 5.5.
1° L'istallazione mi ha allegato 2 cartelle la prima
    di file Header e la secondo di librerie, ma la
    documentazione ? (ho cercato su vecchi post
    del NG via Google ed ho girato per il sito
    Borland ma nulla !)
2° La programmazione della parte di interfaccia
    utente deve essere sviluppata via codice come
    si faceva in C per DOS o con questa ver. č
    possibile fare qualcosa di piů moderno?
    (mi č venuto in mente di usare le API ma
    se compilo e linko in ambiente DOS come
    fanno a coesistere le 2 cose?)
3° Visto lo spirito free di Borland C++ 5.5
    la domanda č forse furi luogo, ma esiste
    un tools di sviluppo delle interfacce grafiche
    (tanto per intenderci Form, TextBox ecc.)
    anch'esso free che permetta una progettazione
    rapida di questa parte cosě delicata della
    programmazione (per cortesia non ditemi
    "Compera Visual C++" )
Ringrazio vivamente tutti e mi scuso per il
post un pň banale ma nelle mie condizioni di
neofita alcune informazioni sono di grande
importanza.
JKLJKL

     "Compera Visual C++" )
Usa gcc + KDevelop + QT Designer (su Linux :-))
-- 
Andrea Bergia - studente
Linux Registred User #281550

 cut
Se lavori sotto Windows scaricati l'ambiente completo e free DevC++
Maurus

 importanza.
Ah... per parlare di finestrelle e bottoncini ==>
it.comp.programmare.win32
--
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: costruttori e distruttore su std::ofstream

costruttori e distruttore su std::ofstream
Salve,
volevo sapere se nella seguente classe sto implementando bene costruttori e 
distruttore:
// waveCapture.h
#include <windows.h>
#include <fstream>
(...)
class waveCapture
{
public:
 waveCapture();
 waveCapture(DWORD, DWORD, DWORD);
 ~waveCapture();
private:
 DWORD dwA;
 DWORD dwB;
 DWORD dwC;
 HANDLE hevent;
 HWAVEIN hwi;
 WAVEHDR *buff;
 std::ofstream hFile;
}
// waveCapture.cpp
waveCapture::waveCapture() :
dwA(0), dwB(0), dwC(0), buff(NULL), hwi(NULL), hevent(NULL) { }
waveCapture::waveCapture(DWORD a, DWORD b, DWORD c) :
dwA(a), dwB(b), dwC(c), buff(NULL), hwi(NULL), hevent(NULL) { }
waveCapture::~waveCapture()
{
 delete[] buff;
 hwi    = NULL;
 hevent = NULL;
}
purtroppo non riesco ad inizializzare std::ofstream hFile in quanto non 
sembra accettare ne 0 ne NULL.
inoltre volevo un consiglio su i parametri del costruttore, dato che non 
verranno mai modificati dalla funzione ma solo letti li posso passare come 
costante?
waveCapture(const DWORD, const DWORD, const DWORD);
e quindi nel costruttore:
waveCapture::waveCapture(const DWORD a, const DWORD b, const DWORD c) : 
(....etc...)
va bene?? avr� migliorie a livello di compilazione?? (VC++ EE)
grazie 

 come costante?
A che pro?
Sono passati per valore, quindi non cambia nulla.
Credo che con alcuni compilatori, verrebbe anche emesso un warning per 
segnalarti l'inutilita' della cosa.
  bye
	av.

 
Dichiarare parametri come const non e' inutile. Neppure quando sono passati per valore.
Se la tua funzione internamente, non deve modificare i valori,  e' anche meglio, che se percaso la funzione per errore li modifica, il compilatore ti da lo warning.

 compilatore ti da lo warning.
Semmai darebbe un errore, non un warning.
Poi io sono abituato che coi parametri passati per valore ci faccio 
quello che voglio, tanto non ci sono effetti collaterali, ma e' 
questione di stile/abitudine/...
  bye
	av.


Non è solo stile. I parametri passati come costanti sono un ulteriore
indizio al compilatore per l'inlining o per ottimizzazioni collegate
all'uso di indirizzi sullo stack del chiamante al posto della copia
sullo stack della funzione chiamata. Un paio di double sono sempre un
paio di double.
Poi, chiaro che con la roba passata per valore uno ci fa quello che
vuole. Tranne nei casi in cui costruttore o distruttore provochino
l'allocazione/acquisizione di risorse (vedi un oggetto che apre un
socket nel costruttore, per esempio). Può anche darsi che la copia non
avveduta provochi deadlock (già visto in codice del mondo reale™). In
quel caso meglio passare per puntatore / riferimento costante.
Ciao,
m.

 sullo stack della funzione chiamata.
Interessante.
Hai qualche riferimento in merito?
Giusto per capire in che condizioni questa ottimizzazione puo' essere 
sfruttata e se/come bisogna abilitarla.
Grazie.
  bye
	av.
Newsgroup: it.comp.lang.c++
Titolo: NaN e INF & C++

Come faccio a mettere in un float o in un double il NaN (Not a Number) e
lINF(inite) in C++Builder? Nell'Help File se ne parla, ma non sono presenti
in nessun header
Ciao
Max

Massimiliano Alberti ha scritto:

Ciao, devi rovistare nell'help di Builder per capire il formato interno dei
float e double.
in via teorica...
msb              lsb  msb                                             lsb
+-+------------+-----------------------------------------+
| s |       e          |
f                            |     --> 4 byte/float;   8 byte /double
+-+------------+-----------------------------------------+
float s= 1 bit,  e= 8 bit, f = 23 bit
    if 0<e<255; then valore = (-1)^s * 2^(e-127) *(1.f)
    if e = 0 and f<> 0, then valore = (-1)^s * 2^(-126) *(0.f)
    if e = 0 and f = 0, then valore = (-1)^s * 0
    if e = 255 and f = 0, then valore  = (-1)^s * Inf.
    if e = 255 and f <> 0, then valore  is e  NaN.
se double s= 1 bit,  e= 11 bit, f = 52 bit
    if 0<e<2047; then valore = (-1)^s * 2^(e-1023) *(1.f)
    if e = 0 and f<> 0, then valore = (-1)^s * 2^(-1022) *(0.f)
    if e = 0 and f = 0, then valore = (-1)^s * 0
    if e = 2047 and f = 0, then valore  = (-1)^s * Inf.
    if e = 2047 and f <> 0, then valore  is e  NaN.
NOTA: ^ sta per "elevato alla ..." es. 5^3 = cinque elevato alla terza.
in pratica "giocando" con i bit puoi modificare i il valore a tuo piacimento.
Io personalmente sono riuscito soltanto a utilizzare 'e' ma per quanto riguarda
la mantissa 'f' ho ancora dei dubbi.
Ciao by Lucio.

 in nessun header
ho già sbattuto il naso contro questo problema, senza tuttavia trovare una
soluzione elegante
a suo tempo ho fatto così:
double minimo = atof("+INF");
puoi anche usare "-INF" e "NAN"
effettivamente i valori +INF e -INF spesso aiutano a semplificare un
algoritmo, strano che non esistano costanti o macro pronte all'uso
TobiX
Newsgroup: it.comp.lang.c++
Titolo: And e Or

Come si scrive and e or in C++ per collegare più istruzioni if?
Inoltre volevo sapere se esiste repeat .... until () come nel Turbo Pascal o
si deve usare  do... while ().
Grazie
--
Posted from [195.223.215.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao.
&& corrisponde a and
|| corrisponde a or
Tieni presente che esiste il cosiddetto meccanismo di "short circuit",
ovvero in un'espressione logica viene valutato solo il minimo necessario
per ricavarne il risultato. Ad esempio:
int a = 0;
if ( a == 1 && f() == 2 )
...
f non viene mai chiamata. 
Per quanto riguarda la seconda domanda, devi usare do...while;
attenzione che rispetto al repeat...until la condizione e' invertita: si
resta nel ciclo fintanto che la condizione e' vera.
Ti consiglio di procurarti un buon libro sul C++...
Ciao,
Nicola

Si, il libro ora lo compro, mi hanno detto che è buono per proncipianti, io
ho letto solo il tutorial di Paolo Marotta.
Ritornando al discorso di and e or io già sapevo quali erano i simboli
corrispondenti ma ciò nonostante ho provato a scrivere semplici esempi di
prova del tipo:
if (x > 2) && (x < 4)
cout << "Hai inserito 3" << endl;
if (x > 2) || (y < 4)
cout << "..........." << endl;
ma il compilatore mi da errore proprio nella riga dove c'è && o ||.
Cosa dovrei fare?


if (x > 2) && (x < 4)
Devi inserire tutta l'espressione fra parentesi
       if ((x > 2) && (x < 4))
       {
         cout << "Hai inserito 3" << endl;
       }
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 cout << "..........." << endl;
il costrutto di if č:
    if(condition)
    [{]
        statement;
    [   statement;
        statement;
    }]
quindi il compilatore legge x>2 come condizione e &&(x<4) č una
stringa senza senso.
Un consiglio, se possibile usa == != piuttosto a quelli che usi adesso
ciao

 || corrisponde a or
Ma si possono utilizzare anche le keyword "and" e "or" giusto?
EMG

 Un consiglio, se possibile usa == != piuttosto a quelli che usi adesso
In questo contesto mi pare un po' difficile, no?
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Librerie grafiche

Salve a tutti , devo fare un piccolo programma in C++
scegliendo da un menu il nome della regione e il prefisso  mi compone
il numero di telefono del provider .
Sapete dirmi se ci sono delle librerie grafiche con cui
si possano fare dei box e finestre stile Windows?
Esempi da poter scaricare , uso il gcc.
Grazie a tutti , grazie 1000
Ciao

 
le wxWindows che sono ottime :)
www.wxwindows.org
Lawrence Oluyede
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: Gioco dell´oca! La soluzione

Eccovi finalmente il codice per il gioco dell惱ca:
Scusate ma per avere il file brain.h occorre superare un test.
#include <brain.h>
class BravoStudente : public Studente
{
private:
bool ready;
public :
BravoStudente : ready(false) () {}
~BravoStudente() {}
bool ReadyForTheExam();
void StudyCplusplus();
void TryToSolveProblemsByMySelf();
}
int main()
{
    BravoStudente me;
    While (!me.ReadyForTheExam())
    {
        me.StudyCplusplus();
        me.TryToSolveProblemsByMySelf();
    }
    return EXAMPASSED;
}
Mauro

Nella mia soluzione ci sono almeno 2 errori di sintassi.
Gli studenti che li troveranno avranno in regalo anche il file brain.h
Un Mauro buono



ROTFLISSIMO ;))
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

On Thu, 22 Feb 2001 15:54:31 +0100, "Maurus"
<REMOVE...@rocketmail.com-REMOVE> wrote:

ROTFL^3
Luc.
PS: Massacriamoli!!!! ^___^

Newsgroup: it.comp.lang.c++
Titolo: Cambio di risoluzione

Ho usato l'API "ChangeDisplaySettings" per cambiare la risoluzione del PC e
impostarla a 1024x768.
Purtroppo però il sistema non funziona con tutte le schede video.....(es
voodo3)
qualcuno ha idea del perchè?
Grazie
Lorenzo

impostarla a 1024x768.
Sei *CLAMOROSAMENTE* OT
-> news:it.comp.programmare.win32
Luc.
Newsgroup: it.comp.lang.c++
Titolo: esiste un programma che fa questo....

cercavo un programma (su unix) che mi inserisce degli script automaticamente
su ogni nuova pagina che viene pubblicato sul server . (onde evitare farlo
ogni volta manualmente visto anche che ho un sito abbastanza capiente oltre
1500pagine)
Esiste un programmino che fa questo?  se si, dove posso trovarlo?
Grazie mille

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



Qui si parla di programmazione C++ in generale.Capirai facilmente che
questo non é il newsgroup adatto per discutere del tuo problema. Prova
a rispedire questo messaggio su it.comp.linux.
Il Ghenio

Newsgroup: it.comp.lang.c++
Titolo: overload << e divisione file h e cpp

Scusate per il subject un po' criptico, ma non sapevo come esprimermi:
tempo fa ho creato una clase matrix e i relativi manipolatori, tra cui
l'operator<< sovraccaricato.
La cosa ha sempre funzionato, solo che adesso ho spezzato intestazioni
e implementazioni in due file, matrix.h e matrix.cpp: non capisco
perche', ma funziona tutto come prima tranne operator<<
se puo' servire:
in matrix.h:
friend ostream & operator <<(ostream &, matrix &);
in matrix.cpp:
ostream & operator <<(ostream &os, matrix &mat)
   { int size=mat.num_row;
	 for(int i=0; i<size; i++)
      {for (int j=0; j<size; j++)  {os<<" "<<mat(i,j)<<" ";}
      os<<endl;	}
return os;   }
Cosa sto sbagliando? Scusate la niubberia :-)
grazie a chi mi rispondera'.

 wrote:
mi rispondo da solo, ci sono abbastazna riuscito...
Sukutestriz
::SuperRobotMuseum::
http://digilander.libero.it/SuperRobotMuseum/SRM.html
Newsgroup: it.comp.lang.c++
Titolo: Come si fanno prg sotto windows con il DJGPP?

Salve a Tutti!
Con il DJGPP e' possibile creare piccoli programmini sotto Windows95?
Se si', che cosa devo scaricarmi?
Un Grazie in DO maggiore!
-=) Pierpaolo (=-        remove NOSPAM to reply by e-mail.

Se si', che cosa devo scaricarmi?
un file con un nome simile a RSXNTDJ.ZIP o qualcosa del genere.
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343

 un file con un nome simile a RSXNTDJ.ZIP o qualcosa del genere.
Esattamente lo trovi per esempio a
ftp://ftp.unina.it/pub/simtelnet/gnu/djgpp/v2tk/rsxdj131.zip
e in tanti altri ftp server.
Saluti.
Luigi

si, ma c'e` anche il gcc apposta per win95/NT
Acc... Non lo sapevo! ;-)
Avevo conosciuto il DJGPP tramite il MAME e pensavo fosse l'unico
comp. C++ freeware. 
Sono andato su cygnus ed ho scaricato il CDK.EXE
Serve altro adesso?
Conoscevo il C ed adesso volevo imparare il C++.
Potete essrme cosi' gentili da darmi il cosiddetto "calcio d'inizio"? 
Ah dimenticavo: e se volessi usare le DirectX?


Ah dimenticavo: e se volessi usare le DirectX?
l'SDK di directx e` gratis, e lo trovi in un mucchio CD allegati a
riviste, non so se ci vuole altro.
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
http://members.tripod.com/%7Eranger_rg/

riviste, non so se ci vuole altro.
L'avevo scaricata tempo fa' ma sembra che senza il Visual C++ o il
Watcom non ci si possa fare niente. ;-(
Mi interessava sapere come utilizzarlo dal GNU C++.
Peccato.
Un Ciao in DO maggiore!


Mi interessava sapere come utilizzarlo dal GNU C++.
prova a chiedere su NG americani, io conosco comp.os.msdos.djgpp, non
so se ce n'e` uno anche per cygnus. dovrebbe esserci anche la libreria
allegro per windows, ma non so se c'e` gia il supporto per directx.
la versione per dos e` ben fatta.
la pagina di allegro e`:
http://www.talula.demon.co.uk/allegro/

Newsgroup: it.comp.lang.c++
Titolo: Operatore , (comma)

Ragazzi, aiutatemi a scigliere un dubbio sull'operatore <,> (comma)  .
Vi propongo un esempio. Ditemi voi come devo leggerlo.
-----------
int i;
i=(4,5,6);
printf("%d \n",i);
i=(4),(5),(6);
printf("%d \n",i);
i=4,5,6;
printf("%d \n",i)
----------
questo codice stampa
6
4
4
Ma come devo leggere le 3 assegnazioni???
Grazie 10^3;
Buona Pasqua a tutti.
~Guybrush~

 Ma come devo leggere le 3 assegnazioni???
Usando le parentesi rotonde per indicarti le precedenze, devi legggerle cosi':
i=(4,5,6)
corrisponde a
(i=((4,5),6))
i=(4),(5),(6);
e
i=4,5,6;
corrispondono a
(((i=4),5),6);
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

Buona Pasqua a tutti.
anche a te
spero di non avere scritto cavolate,
Ciao Anto
--
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


ok...andiamo al cuore della questione.  Che significa
i=(3,4)  ?
E poi che  signfica scrivere
( espressione1, espressione2);  ?
~Guybrush~

( espressione1, espressione2);  ?
In C e' ammesso scrivere una espressione come statement; l'espressione
viene calcolata e il risultato viene buttato via. Ad esempio:
   int main()
   {
     6;5;0;2;
     return 0;
   }
Molti compilatori ti avvisano che le istruzioni che hai scritto non
servono a nulla, per esempio BCC55 dice "Code has no effect in
function main()".
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c++
Titolo: "Error spawning cl.exe"

se compilo una qualunque cosa, anche semplice, in VC++, mi dice: "Error
spawning cl.exe". sapete il motivo?
grazie
Marco
reply all, per favore.

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

 spawning cl.exe". sapete il motivo?
cl.exe e' l'eseguibile del compilatore ed evidentemente l'ambiente
di sviluppo ha qualche problema a lanciarlo.  Prova a fare una
ricerca per vedere se il file c'e'.  
In ogni caso, rivolgiti a it.comp.programmare.win32.
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c++
Titolo: ungetc()

Ho una funzione che prende volta per volta un carattere dallo stream di
input e lo mette in una stringa in questo modo:
pippo[indice]=getchar();
l'indici ovviamente viene incrementato.
Ogni tanto ho bisogno di ributtare l'ultimo carattere preso nello stream di
input in questo modo:
ungetc(pippo[indice]);
Quando inserisco quest'ultima istruzione il programma sbarella letteralmente
(errori strani di indirizzi di memoria). Sapete dirmi dove sbaglio?
Grazie
Fabrizio

 Fabrizio
-- 
Vladislav Valtchev

 semplicemente fputc oppure fprintf per ributtare indietro il carattere.
Non è la stessa cosa: non puoi scrivere con fputc su uno stream aperto in 
solo input, mentre puoi usarci ungetc!
E poi, se avessimo aperto un file in lettura / scrittura, ungetch rimette 
nello *stream* il carattere passatole dimodoché sia il primo a venir letto 
alla successiva operazione di lettura dallo stream, mentre fputc 
scriverebbe nel file un altro carattere. Prova!
#include <cstdio>
int main()
{
        FILE *a=fopen("ape.crc", "a+");
        fputs("ape", a);
        fseek(a, 0, SEEK_SET); //Necessario, sennò legge EOF
        ungetc(fgetc(a), a);
        fputc(fgetc(a), a);
        return 0;
}
-- 
Per l'e-mail rimuovere la frase in maiuscolo e gli underscore.

 
-- 
Vladislav Valtchev
Newsgroup: it.comp.lang.c++
Titolo: Consiglio su librerie

Salve a tutti,
per hobby e studio sto scrivendo un programma che usa Qt per la GUI (e
il suo meccanismo signal/slot mi sembra perfetto per coordinare varie
altre componenti, ad es. attivare certi oggetti all'arrivo di dati
sulla porta seriale).
Per i container ecc. uso la STL, mentre col tempo ho aggiunto la boost
per avere le regex e gli shared pointer.
Ora, mi chiedo: non varrebbe la pena usare Qt per tutto, visto che ho
gia' deciso di usarla per la GUI? Cioe' rimpiazzare
* boost::shared_ptr  con  QSharedPointer (sono identici, giusto?)
* boost::regex con QRegExp
* container STL con gli equivalenti Qt
Mi sembra piu' pulito, usare una sola libreria. Inoltre, ho intravisto
certe cose dei container che mi sembrano molto comode (ad es. per fare
l'intersezione tra due set in Qt c'e'  "mySet.intersect(myOtherSet)",
invece che usare un algoritmo con 4 iterator e un iterator adapter!).
Ci sarebbero controindicazioni a fare le sostituzioni dette sopra? (a
parte il tempo per farle e debuggarle, ma visto che e' per
hobby&studio posso perderci un po' di tempo e imparare qualcosa in
piu' nel frattempo; inoltre, non mi sembrano cambiamenti cosi'
drastici).
Considerazioni? Suggerimenti?
Thx,
Pleg

 Pleg
come gi� detto spesso qt � una libreria omnicomprensiva la puoi usare
per tutto, container, thread, sql, regexp, etc, inoltre � pi� semplice
gestire il tutto tramite qmake se usi solo le qt o librerie che si
appoggiano a queste, inoltre ci sono diversi libri sulle qt che coprono
sia la gui e che il resto, il che non fa mai male.

 ha scritto nel messaggio 
news:20595f2f-b244-4513...@v37g2000prg.googlegroups.com...

Le QT4 sono ottime anche per le classi container che fornisce: QList, QMap, 
QMultiMap, ecc...
Nell'utilizzo permettono diversi stili, tra cui anche quello STL.
In merito alla velocit� di esecuzione non so se siano pi� performanti le STL 
o se pareggini con quelle di QT4.
Kaos.

 * container STL con gli equivalenti Qt
Si, fai assolutamente bene. Le classi qt sono fatte bene e ce ne sono
per tutti i gusti, inoltre hai il grosso vantaggio di un'ottima
integrazione anche con il resto delle Qt (altrimenti ad esempio
impostare una label a partire da una stringa stl o boost ti
richiederebbe delle conversioni di tipo).
Gianni

Newsgroup: it.comp.lang.c++
Titolo: Spiegazione codice

Questo è il codice di un programma che prende un array di interi e stampa
gli elementi dell'array in ordine inverso, qualcuno può spiegarmi come
funziona?
Grazie.
#include <iostream>
using namespace std;
void mystery2(int[], int);
int main(){
 const int size=10;
 int a[size]={32, 2, 64, 18, 5, 14, 9, 70, 60, 37};
 mystery2(a, size);
 cout << endl;
 return 0;
}
void mystery2(int b[], int size){
 if (size >0){
  mystery2(&b[1], size-1);
  cout << b[0] << " ";
 }
}

  return 0;
}
Ciao

 Questo č uno dei mille e piů modi per stampare un array in ordine inverso
Vero, comunque va detto che al di la dell'aspetto didattico, č proprio il
peggiore!
E' ovviamente meglio la cosa piů semplice e naturale: quello che hai
proposto.


Grazie :)
Newsgroup: it.comp.lang.c++
Titolo: [?] - Come faccio a fare apparire una finestra di start up in Visual C++ ?

Volevo sapere come posso, in visual c++, lanciare prima della mia
applicazione una finestra di start up. Nei progetti creati con l'AppWizard
di Visual Basic una schermata di questo tipo viene creata automaticamente ed
è un form che da quanto ho capito si chiama SPLASH. Ho cercato delle API ma
non ho ancora trovato niente.
Grazie in anticipo a tutti.

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

Ciao!
Vorrei praticamente ottenere l'effetto di memset, solo che invece di un solo
byte come riempimento ne userei due, o tre, o quattro, ecc...
Per adesso sto usando questo ciclo for, ma suppongo che se vi fosse una
routine di libreria sarebbe più ottimizzata :)
// const RGBQUAD &rgbPixel
for (unsigned int i = 0; i < GetImageSize() >> 2; i++) {
    RGBQUAD * bytes = (RGBQUAD *) GetDIBits();
    *bytes++ = rgbPixel;
}
Uso MSVC 6 SP5.
Grazie!
--
Kojak
vrke...@hotmail.com
http://zip.to/kojak
Life would be much easier if I had the source code.

 }
Cosi' come lo hai scritto non credo che funzioni. Prova cosi' (piu' corretto,
piu' leggibile e anche piu' efficiente):
RGBQUAD &rgbPixel;
//...
RGBQUAD *pQuads = (RGBQUAD *) GetDIBits();
for (unsigned i=0, rgbQuads=GetImageSize()/4; i<rgbQuads; i++) {
    pQuads[i] = rgbPixel;
}
--
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

 }
Hai ragione, questo è più veloce...
Posso fare due ulteriori domande?
o) La velocità delle operazioni è la stessa usando unsigned int o int?
o) Io avevo usato uno shift invece della divisione. Dando un'occhiata alla
finestra disassembly, ho visto che VC effettivamente l'ha ottimizzata in uno
shift. Quindi posso evitare sempre di usare shift invece di divisioni, tanto
ci pensa il compilatore?
Grazie della risposta!


 ci pensa il compilatore?
Regola N^ 1 dell'ottimizzatore: evita di ottimizzare il codice se non hai prima
MISURATO che quel codice e' il tuo collo di bottiglia.
Quindi evita di inventarti ottimizzazioni come l'uso degli shift invece che
moltiplicazione/divisione fra interi o l'uso di un puntatore incrementato invece
che dell'operatore [].
Questo vari motivi:
1) nel 100% dei casi il sorgente e' meno leggibile per l'umano
2) nel 90% dei casi la tua logica e' meno "capibile" dall'ottimizzatore e nel
60-90% (dipende da quanto sei bravo) dei casi l'ottimizzatore e' piu' bravo di
te a ottimizzare ... se capisce cosa vuoi fare.
3) nel 99.999999999% dei casi la tua ottimizzazione non serve a velocizzare il
programma (o lo velocizza dove non serve che sia veloce) nonostante tu abbia
impiegato del tempo extra per scriverla.
4) nella stragrande maggioranza dei casi dovrai modificare il sorgente in un
modo che rende comunque non fattibile la tua ottimizzazione.
Prima scrivi il codice in maniera leggibile e modificabile. Poi misura se la sua
velocità ti basta. Se cosi' non e' MISURA (non cercare di indovinare) quale e'
il collo di bottiglia. Ottimizza solo quello e solo quel tanto che basta per
rendere il programma utilizzabile.

Newsgroup: it.comp.lang.c++
Titolo: IDE e GUI

Ciao a tutti.
Mi consigliate per favore qualche IDE free o open che permetta di creare 
in C++, GUI in modo visuale.
Già che ci siamo: lo strumento che permette di creare GUI in modo 
visuale ha un nome specifico? (se lo sapessi risulterebbero più efficaci 
le ricerche in internet).
Grazie
Ciao!


Si chiamano strumenti GUI RAD. Se cerchi in un motore di ricerca "gui 
rad c++ free tool" trovi una marea di riferimenti.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila



Per linux:
it.comp.os.linux.developement
www.trolltech.com
 (con le qt hai anche un designer)
http://glade.gnome.org/
 (per gtk)
per wx non so indicare
Per windows:
it.comp.programmare.win32
glade c'e` pure per windows, afaik. di piu` non so...
ho sentito parlare di MinGW IDE (ottimo, basato su gcc)
e di Bloodshed Dev-C++ (pure ottimo e basato su gcc)
Questo tipo di domanda in questo ng e` OT. Ti ho indicato i gruppi
appropriati.
-- 
RiK0
[ non credo negli schemi non vincenti ]
[     two is an odd prime number.     ]

Mi consigliate per favore qualche IDE free o open 
MinGW Developer Studio 
per linux e windows
(ovviamente per il compilatore gcc o derivati)
-- 
sito Papero 2 (database):       
http://user.7host.com/papero/
sito Papero 3 (passatempi):     
http://digilander.iol.it/davidequack

Newsgroup: it.comp.lang.c++
Titolo: Get time (msec)

Salve a tutti, e' la prima volta che scrivo a questo newsgroup.
Vorrei sapere come riuscire a prendere degli intervalli di tempo
con precisione al millisecondo.
Grazie,
Davide

...

Se proprio vuoi il millisecondo devi scrivere qualcosa in assembler, il C e
il C++ non ti danno nulla di cosě preciso.
Ciao, Giuseppe

 Davide
Prova con le due funzioni:
QueryPerformanceFrequency(...) e QueryPerformanceCounter(...)
se il tuo computer lo permette, queste funzioni sono in grado di darti
intervalli di tempo con precisione molto elevata.
Ad esempio, nel mio PC un secondo viene suddiviso in circa 110000
battute.
MM
Sent via Deja.com 
http://www.deja.com/
Share what you know. Learn what you don't.

...


...
: >QueryPerformanceFrequency(...) e QueryPerformanceCounter(...)
Premessa: utilizzo VC6.0.
Le due funzioni sono normalmente disponibili e la loro descrizione si puo'
ricavare dall'help. Non mi richiedono alcun header o alcuna libreria,
comunque sono definite nel header winbase.h e fanno parte della libreria
kernel32.lib
MM
Newsgroup: it.comp.lang.c++
Titolo: file stream e oggetti

Ciao a tutti come si può notare dalle mie domande arrivo direttamente da 
Java e sto sviluppando un progetto relativamente semplice in C++.
Se ho un oggetto molto "complesso" (mettiamo un container STL) come 
faccio a renderlo persistente? in poche parole: come faccio a salvarlo 
su file?
Devo costruirmi una funzione a mano che lo codifichi in una sequenza di 
caratteri (o byte) oppure qualcuno ci ha già pensato ed è possibile 
scrivere un filestream direttamente l'oggetto? (se la risposta non è la 
seconda vi prego: mentitemi ;-P - mi aspettano notti insonni - )
Grazie a tutti.
Matteo


Se stai cercando una specie di "serialize", beh...
In C++ standard non esiste e devi farlo a mano.
Credo esistano delle librerie di terzi che lo fanno.
Dai un occhio a quanto si è detto fin'ora sull'argomento:
http://makeashorterlink.com/?O2D2258A1
--
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: i am a new in c language



and is it any different between C and C++
C is a language with its own ISO standard, C++ is another language
with a different ISO standard. C++ evolved from C, so it can be considered
as a superset of C, but this is true only to a certain extent.
Newsgroup: it.comp.lang.c++
Titolo: Passaggio: C++ x Dos ---> Visual C++

Salve a tutti grandi guru della programmazione :)
Studio ormai da un anno con la scuola la programmazione per il C++ sotto dos
(come compilatore usiamo il Turbo C++ 3 della Borland) e sono diventato
ormai piuttosto bravo.
Vorrei iniziare la programmazione sotto windows con il Visual C++ ma non so
come fare questo passaggio, cioe'... l'ultima volta che mi sono ritrovato ad
installare il Visual C++ non ho capito piu' molto... a dir la verita' nulla.
Volevo quindi qualke konsiglio da voi esperti su testi , siti e manuali
online che mi possano aiutare.
Tnx x tutto :)



 ormai piuttosto bravo.
Se hai utilizzato solo quel compilatore (molto vecchio) temo proprio che
del C++ tu conosca ben poco. Prova a scaricarti Thinking in C++ di Bruce
Eckel da 
www.bruceeckel.com
 cosě ti renderai conto di quali sono le tue
eventuali carenze e potrai cosě colmarle.
EMG
PS. Hai inviato il tuo messaggio dieci volte. Bastava una...

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

buongiorno a tutti,
mi date un consiglio su quale libro comprare per imparare il c++?
Cosa ne pensate del "The C++  Programming Language" di Bjarne Stroustrup?
Ho programmato già in C e per quanto riguarda la programmazione ad
oggetti conosco java del quale mi sono disaffezionato.

Claudio ha scritto:

Io consiglio sempre Thinking C++ che è stato tradotto e messo online 
GRATIS. Soprattutto se conosci il C e vuoi sapere qualcosa di + del C++.
Lo trovi sul mulo in PDF o qua e là online, come qui:
http://www.umbertosorbo.it/wiki/index.php/Pagina_principale
oppure:
http://www.opensourcemania.it/modules.php?name=Downloads&d_op=MostPopular
Ciao

 Cosa ne pensate del "The C++  Programming Language" di Bjarne Stroustrup?
Ottimo testo. È un testo introduttivo non per principianti, ma a quanto
dici non è il tuo caso, quindi vai pure.
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.


E' un ottimo libro, ma per imparare e' forse meglio "C++ Primer", 4
edizione, di Lipmann, Lajoie & Moo. Attento che l'edizione sia davvero
la quarta.
Ciao,
Nicola

Grazie per i consigli e a presto.
Ciao

la quarta.
Vero e ci aggiungo "Thinking in C++" del mitico Bruce Eckel, peraltro
liberamente scaricabile da 
www.mindview.net

Newsgroup: it.comp.lang.c++
Titolo: BORLAND C++ BUILDER Standard

Vendo suddetto pacchetto a prezzo raggionevole o scambio con TASM o 
MASM.


Newsgroup: it.comp.lang.c++
Titolo: typedef di un template?

Ciao a tutti,
avrei una domanda riguardante la seguente riga di codice che non mi
compila:
template<class T> boost::shared_ptr<T>   mySmartPointer<T>;
quello che mi chiedo e' cosa c'e' di sbagliato e se e' possibile in
qualche modo fare un typedef di un template,
che funzioni con compilatore microsoft e gcc.
graie a tutti,
saluti
w

 qualche modo fare un typedef di un template,
Al momento non � possibile. Nel prossimo (imminente?) standard lo sar�,
grazie a un nuovo significato attribuito alla keyword 'using':
 template<class T>
  using mySmartPointer = boost::shared_ptr<T>;
 Max

  Max
grazie mille!

Newsgroup: it.comp.lang.c++
Titolo: Da stringhe colori esadecimali a int

Ciao a tutti,
devo leggere da un file di configurazione delle stringhe di esadecimali 
del tipo
0x000000,0xFFFFFF
che rappresentano i colori rgb.
Una volta lette, devo applicare quei colori ai miei oggetti, ma lo posso 
fare con una
void set_color(unsigned rgb).
Come posso scrivere la funzione
unsigned hexstr_to_int(const std::string hex_string)
in modo che, per esempio
hexstr_to_int("0xFFFFFF") mi restituisca 16777215?
Grazie
Francesco


Qualcosa come:
#include <ios>
#include <iostream>
#include <istream>
#include <ostream>
#include <sstream>
#include <string>
unsigned hexstr_to_int(const std::string & hex_string)
{
    unsigned u;
    std::istringstream iss(hex_string);
    iss >> std::hex >> u;
    return u;
}
int main()
{
    std::string s("0xFFFFFF");
    std::cout << hexstr_to_int(s) << '\n';
    std::cin.get();
}
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Costanti in una classe

Se mi trovo in una classe perchè non posso dichiarare una costante "vecchia
maniera"?
Cioe se ho:
class c{
private:
const int n=10;
int array[n];
public:
....
}
Mi da errori, e sono costretto a sostituire la costante con una variabile
statica (static const int n=10) oppure con una cosa del tipo: enum{n=10}
....cosa c'è che non va nel primo caso?
Auguro un buon anno a tutto il ng!

 wrote in message
wtnY7.13462$s04.5...@news.infostrada.it...

Non puoi perchè devi specificare se vuoi che la costante appartenga
all'oggetto o alla classe. Dichiarando la costante statica, il compilatore
assume che ogni istanza di quella classe abbia il valore della costante 'n'
pari a 10. L'altra possibilità è che ogni istanza della classe abbia una sua
costante n con un valore diverso da istanza a istanza. In quest'ultimo caso
devi usare la lista di inizializzazione per inizializzare la costante. Nel
tuo caso:
 c(int a): n(a) {;}
 la costante n verrà inizializzata con il valore di a, che va specificato
nell'atto di definizione dell'oggetto:
c my_c(25);    // n viene inizializzato a 25.
Il tuo metodo non funziona perchè hai usato una via di mezzo fra le due
possibilita; ciò che devi chiederti è: 'n' deve avere un valore univoco fra
le istanze della classe o deve avere un valore diverso per ogni istanza? Nel
primo caso la variabile va dichiarata statica, nel secondo no, ma
l'inizializzazione va fatta nella definizione dell'oggetto.


Che i membri non statici di una classe non possono essere inizializzati
nella dichiarazione, ma devono essere inizializzati nei costruttori.
D'altra parte dichiarare un membro non statico costante con lo stesso
valore per tutte le istanze e' solo uno spreco.
Ciao,
Nicola

....cosa c'è che non va nel primo caso?
E' una decisione(giusta)presa da chi ha progettato il linguaggio, una
qualsiasi variabile non statica che sia const o meno non deve essere
legata alla classe ma alle istanze di essa, e permettendo di
inizializzarla nella dichiarazione dei dati membro il valore di tale
variabile sarebbe forzatamente copiato su tutte le istanze( questo
sarebbe anche uno spreco, meglio usare direttamente dati static).
Fra le due soluzioni é preferibile utilizzare un enum, anche se lo
standard permette di inizializzare un costante statica intera
direttamente nella dichiarazione dei dati membro non tutti i
compilatori supportano questa possibilità(VC++ é uno di questi).
Il Ghenio
---------
These are my parting words to you:
those who give up are doomed!