mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Funzioni grafiche e fstream

Salve,
sono un principiante del C++ e mi interesserebbe sapere come posso, con il
mio TcWin 3.1 per w95,  fare le seguenti operazioni:
1. Aprire una finestra "grafica" (dove vorrei tracciare delle funzioni)
2. Associare a coordinate numeriche un corrispondente pixel (sul modello
della semplicissima funzione Pascal: PutPixel )
3. Far si che il programma prelevi dati da un file (tipo Blocco Note) e
stampi i risultati su un file analogo
Grazie Mille
Saluti,
         Simone
----------------------------------------------------------------------------
----
Simone Simionato
Studente presso la
Facoltà di Ingegneria Informatica
all' Universita' di Padova
30030 Oriago di Mira
VENEZIA (ITALY)
Home phone: 
+39 (041) 429868
E-mail: 
Simi...@VENETO.ShineLINE.IT
----------------------------------------------------------------------------
----

Salve,
sono un principiante del C++ e mi interesserebbe sapere come posso, con il
mio TcWin 3.1 per w95,  fare le seguenti operazioni:
1. Aprire una finestra "grafica" (dove vorrei tracciare delle funzioni)
2. Associare a coordinate numeriche un corrispondente pixel (sul modello
della semplicissima funzione Pascal: PutPixel )
3. Far si che il programma prelevi dati da un file (tipo Blocco Note) e
stampi i risultati su un file analogo
Grazie Mille
Saluti,
         Simone
----------------------------------------------------------------------------
----
Simone Simionato
Studente presso la
Facolt` di Ingegneria Informatica
all' Universita' di Padova
30030 Oriago di Mira
VENEZIA (ITALY)
Home phone: 
+39 (041) 429868
E-mail: 
Simi...@VENETO.ShineLINE.IT
----------------------------------------------------------------------------
----
--
Automatic posted from 
ro...@veneto.shineline.it
 [195.78.195.3]
via Mailgate Server - 
http://www.mailgate.org

Newsgroup: it.comp.lang.c++
Titolo: Quale libreria?

Salve,
c'e' qualcuno che puo' darmi una mano?
Sono alla ricerca di una libreria, un sorgente o similari
che permettano la lettura (e possibilmente la scrittura) di tracce dati su
cd.
In alternativa andrebbe bene anche documentazione inerente in modo da
potermi
autocostruire una libreria personalizzata.
Se serve aggiungo che, almeno per il momento, il tutto mi serve
per pilotare apparecchiature scsi.
Programmo con il watcom c/c++ 11.0a sotto dos/windows
La libreria puo' essere anche per sistemi linux...
Grazie per l'attenzione prestatami.
Marco Babbei

 cd.
l'autore di CDR Identifier (tra l'altro ottimo prg. per chi masterizza) sta
creando o ha ultimato una libreria freeware per masterizzare cd
lo puoi contattare a 
mi...@gum.de
 - non ricordo il sito
TobiX
Newsgroup: it.comp.lang.c++
Titolo: cerco suggerimento per DialogBox e derivazione

Ciao a tutti.
Ho provato a trascrivere un programma dal libro di Schildt "Windows
95, programmazione in C e C++" in cui compare il comando DialogBox per
aprire una finestra di dialogo: il problema é che il parametro di
DialogBox riguardante la funzione che gestirá la finestra di dialogo é
dichiarata DLGPROC (in winuser.h) che corrisponde ad un puntatore a
funzione con nessun parametro mentre Schildt nel suo esempio impone,
penso anche giustamente, la funzione di gestione con i quattro
parametri soliti (HWND, UINT, LPARAM, WPARAM)... il compilatore fa il
suo dovere e logicamente mi da l'errore di impossibilitá di
conversione "cannot convert parameter 4 from 'int (void *,unsigned
int,unsigned int,long)' to 'int (__stdcall *)(void)'"
Morale.... dove sbaglio???
Problema n. 2: in un altro programma ho creato una classe derivata da
CSliderCtrl per poter fare l'override di un metodo. Quando peró vado a
impostare la funzione DDX_Control con l'instanza della mia classe, il
compilatore mi da l'errore "cannot convert parameter 3 from 'class
CSliderWal (void)' to 'class CWnd &'"
... ancora ... dove sbaglio???
Ringrazio anticipatamente coloro che cercheranno di darmi un
suggerimento.
Saluti..!
						Walter
N.B. togliete NOSPAM dal mio indirizzo e-mail.

... ancora ... dove sbaglio???
Stai passando una funzione che non prende parametri e ritorna una
"class CSliderWal", invece di un oggetto di classe CSliderWal (se tu
passassi un tale oggetto, visto che deriva alla fine da CWnd, il tuo
compilatore sarebbe felicissimo di convertirlo a una reference a
CWnd.  Probabilmente un qualche svarione di sintassi da parte tua,
e le possibilita` sono parecchie, quindi non le elenco tutte.
Una possibilita` davvero sottile, comunque, sarebbe questa:
class CSliderWal: public CSliderWnd {
    // ecc ecc, e ad es un costruttore:
public:
    CSliderWal(long pip);
};
// poi, piu` avanti:
void miafunz(int i)
{
    CSliderWal pippo((long)i);
    // ecc ecc
A questo punto tu credi di avere dichiarato un oggetto
pippo, di classe CSliderWal, inizializzato dal costruttore
che accetta un long.  E invece hai dichiarato una funzione
pippo, che ha un parametro long di nome i, e ritorna un
oggetto di classe CSliderWal.  E` una sottigliezza di
sintassi C++, e si puo` rimediare in tanti modi, ad esempio
usando, invece del deprecato cast all'antica, uno moderno:
    CSliderWal pippo(static_cast<long>(i));
questo funziona correttamente.
Alex

Grazie Alex!!  I tuoi suggerimenti sono stati davvero importanti.
Newsgroup: it.comp.lang.c++
Titolo: Dubbio su forma

Su un libro ho trovato questo esempio:
### INIZIO ###
class Prova() {
	Prova &setValueX(int x);
 
	int x;
}
Prova &Prova::setValueX(int x) {
	this->x = x;
	return *this;
}
### FINE ###
E' esatto?
Quello che non mi č chiaro č
return *this;
Ma *this non rappresenta un oggetto Prova?
La funzione non dovrebbe essere del tipo:
Prova Prova::setValueX(int x) {...}
ovvero senza l'operatore &?
Ho provato a togliere & e il programma si compila lo stesso senza
problemi!
Quale č la soluzione stilisticamente piů corretta?
--
Marco "Duff" Palermo
http://www.marcoduff.com/

 Quale è la soluzione stilisticamente più corretta?
Più usata è forse quella con il reference, appunto per motivi di
efficienza.
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

 Infatti sintatticamente va bene ugualmente.
non e` solo questione di efficienza. Per prima cosa se restituisci un 
reference restituisci un oggetto *identico* (nel senso che ha la stessa 
identita`, ovvero che sono lo stesso oggetto) al primo, mentre se 
restituisci un non-reference restituisci una copia, ovvero un altro 
oggetto. Questo puo` avere conseguenze importanti nei casi in cui non ha 
molto senso copiare un oggetto, o magari il copy ctor non e` 
accessibile: pensa ad esempio a quando implementi operator<< e 
resituisci un ostream: ha senso restituire una copia di std::cout 
anziche` std::cout stesso?
In secondo luogo se restituisci una copia potresti avere problemi di 
slicing con le classi derivate:
class Base {
public:
     Base foo() { return *this; }
     Base& bar() { return *this; }
};
class Derived: public Base {
};
Base* x = new Derived;
x->foo(); // restituisce un Base
x->bar(); // restituisce un Derived
ciao Anto
-- 
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra

 non e` solo questione di efficienza.
Grazie per le preziose precisazioni. Ecco l'esempio completo basato sul
tuo (scusa la riformattazione ma l'ho fatto per mia pura comodità di
lettura) che dimostra lo slicing:
#include <iostream>
class Base
{
    public:
        Base foo() { return *this; }
        Base &bar() { return *this; }
        virtual void ClassName() { std::cout << "Base" << '\n'; }
};
class Derived: public Base
{
    public:
        void ClassName() { std::cout << "Derived" << '\n'; }
};
int main()
{
    Base *x = new Derived;
    x -> foo().ClassName(); // restituisce un Base
    x -> bar().ClassName(); // restituisce un Derived
    return 0;

Newsgroup: it.comp.lang.c++
Titolo: Vector in c++

Se io scrivo la seguente riga di codice
vector<int>* vec = new vector();
Quando compilo ottengo i due errori seguenti
error C2955: "std::vector": l'utilizzo di un template di classe
richiede un elenco di argomenti di template
error C2512: "std::vector": non è disponibile alcun costruttore
predefinito appropriato
Perchè non lo compila e quale è il mio errore
Grazie mille
Massimo

 Grazie mille
prego.
-- 
bash: impossibile: command not found

 ha scritto:

Grazie Mille davvero grazie mille

 vector<int> * vec = new vector<int>();
Perché le parentesi tonde? Va bene anche
vector<int> * vec = new vector<int>;
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

 
sě, meglio. Cosě non si inventa di scrivere
vector<int> vec();
:-)


Newsgroup: it.comp.lang.c++
Titolo: specializzazione template e namespace

g++ mi dice che la specializzazione di un template deve essere fatta
nello stesso namespace del template di base, mentre cl (microsoft)
ignora la cosa.
Lo standard che dice?
-- 
int

Che ha ragione g++.
Ciao,
Nicola

 Che ha ragione g++.
Aggiungo che le implementazioni dei template su compilatori M$ C++ - 
tranne forse l'ultima versione, che pero' non ho - sono molto 
"soggettive" e poco standard :)
Ciao,
Dan

 ignora la cosa.
Beh, visto che la specializzazione si fa in funzione del template base e che
quindi deve essere visibile, devono essere nello stesso namespace :)
Ciao


Ok.
Io specializzo std::less<Key> per un mio tipo in maniera da usare vari
std::set<Key> senza dover specificare ogni volta la funzione di sort da
usare per MioTipo. Funziona.
set viene dichiarato nel namespace std, sia per g++ che per cl
all'incirca come:
template <class Key, class Compare=less<Key>, class Allocator=
allocator<Key> class set;
La cosa è che Compare non ha di default std::less<Key>, ma less<Key>.
Ora, ho fatto un po' di prove ed ho visto che specializzando
std::less<MioTipo>, aggiungendo ::less<Key> e specializzandolo come
::less<MioTipo>, instanziando std::set<MioTipo> nel namespace ::, il suo
costruttore preferisce comunque la specializzazione di less nel
namespace std.
Io mi seri aspettato, da qui la domanda, che avesse preso in
considerazione prima ::less<MioTipo> che std::less<MioTipo> visto che
sto instanziando in :: e il template default argument non specifica
namepsace (class Compare=less<Key>).
Perché? Ha qualcosa a che fare con il König lookup?
Oppure perché set è dichiarato nel namespace std?
Saluti
-- 
int
Newsgroup: it.comp.lang.c++
Titolo: [Un pò OT] Strumenti per generare documentazione

Di recente ho avuto la disgrazia di dover studiare Java... sapevo che me ne
sarei innamorato e così è stato!!! Tuttavia rimango fedele al mio primo
amore, il C++!!!
Ad ogni modo sono rimasto accattivato dall'utilità e dalla semplicità dello
strumento JavaDoc, e mi chiedevo se esistesse un programma (magari, se non
chiedo troppo, un Add-In per Visual Studio) che faccia più o meno lo stesso
per i file C++.
Tnx.

 ha scritto nel messaggio
news:hYR9a.184759$ZE.55...@twister2.libero.it...

http://www.doxygen.org

 per i file C++.
Doxygen: 
http://www.doxygen.org
(in questo momento non riesco a raggiungerlo)
Ciao,
Nicola

 Studio) che faccia più o meno lo stesso per i file C++.
Doxygen
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.0. C, C++ and ASM developers
                               and beta testers are welcome!

Newsgroup: it.comp.lang.c++
Titolo: sql e c++

 
          Salve, ho la necessita di richiamare in c++ una tabella o meglio un database
fatto in access o sql, ed all'occorenza di modificarci dati, sempre sotto
c++ con opportuno codice, qualcuno può aiutarmi dicendomi quali librerie
usare e come usarle oppure indicarmi del materiale in rete?poiche non ne ho
trovato per lo specifico caso.
grazie
enzo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Guarda puoi andare in questo sito :
http://www2.ing.unipi.it/~d4544/fondamenti2
c'è una libreria che ho usato per fare il progettino di informatica.. 
non è che funzioni benissimo ma se non ti serve usare le eccezzioni va 
più che bene, la libreria è nella zona Progetto.In questo link ti apre 
un pdf sui comandi della libreria.
http://www2.ing.unipi.it/~d4544/fondamenti2/Eserc-MySQL++.pdf
se ti serve poi una mano chiedimi e vedrò di aiutarti se mi è possibile.
bluland ha scritto:


Ti ringrazio tantissimo per avermi risposto ora mi studio un pò le cose e
vedo se funziona poiche sono ancora alla parte progettuale, in realta il
progetto che sto cercando di concludere e partito con l' UML poi ho scelto
il c++ per passarlo in codice ma il problema e' che mi trovo a dover
interfacciarmi con due database. Appena proverò la parte di codice ti farò
sapere se mi ha funzionato.
Grazie ancora
ENzo


Newsgroup: it.comp.lang.c++
Titolo: NUOVO GRUPPO SCSI

Si sta votando per IT.COMP.HARDWARE.SCSI
qui trovi il manifesto
http://www.cilea.it/news-it/CFV/337
la CFV avrà termine il 27 di Novembre.


Newsgroup: it.comp.lang.c++
Titolo: Grassa ignoranza

Lo so che può sembrare strano, ma non è che qualcuno mi direbbe come si fa a
scrivere la parentesi graffa (cioè questa "{" che ho dovuto copiare e
incollare da un altro pezzo di codice)?
Grazie.
il tonno

scrivere la parentesi graffa (cioč questa "{" che ho dovuto copiare e


Grazie.
ALT+ 123 = ' { ' . ALT+ 125 = ' } ' . Usa il tastierino, mi
raccomando.
Il Ghenio
-----
Proteggeremo il mondo della devastazione!
Uniremo tutti i popoli nella nostra nazione!
Denunceremo i mali della verità e dell'amore,
Estenderemo il nostro potere fino alle stelle.
Jesse!
James!
Team Rocket pronto a partire alla velocità della luce.
Arrendetevi subito oppure preparatevi a combattere.
Miaaaoooo, proprio cosi'!
(Team Rocket)
-----

Puoi usare anche "SHIFT"+"CTRL"+"ALT"+"[" e "]"
Stefano

 Comunque devi usare ALT 123 e ALT 125 .
Grazie (anche a quelli arrivati dopo di te) per l'informazione, ma ho un
problema. Avendo la necessità di scrivere parecchio testo in italiano avrei
bisogno anche della nostra tastiera: c'è la possibilità di utilizzare una
specie di switch tra due tastiere, ognuna impostata col suo set di
caratteri?
Grazie
il tonno

Siamo completamente OT, comunque dal control panel -> regional settings
-> input locales, puoi specificare piu' di un layout di tastiera; a quel
punto ti comparira' in basso a destra un indicatore di qual'e' quella
attiva e cliccandoci sopra puoi cambiare. Io uso English (United States)
per programmare e Italian (Standard) per scrivere.
Ciao,
Nicola

 Siamo completamente OT
Mi spiace, ma vengo da alcuni ng dove il concetto di OT, quando esiste, è un
po' diverso. Vedrò di adattarmi.
Grazie per il consiglio.
il tonno

Se usate windows(non so se funga anche in linux...non ho mai provato.)
esiste un modo moooolto rapido per fare parentesi graffe {}!
premete CTRL+ALT+SHIFT + "é"={
premete CTRL+ALT+SHIFT + "+"=}
oppure usate direttamnte ALT GR + SHIFT e i due tasti indicati sopra...
Ciao a tutti!!
Marco
provate CTRL+M
equivale a Invio....
Misteri...

Newsgroup: it.comp.lang.c++
Titolo: C++ e reti neurali

Volevo sapere se potreste indicarmi qualche risorsa web che tratti di reti
neurali  compilate in C++.
Anticipatamente grazie per l'aiuto.
Ciao

Prova a postare su it.comp.ia
Dome

 Dome
Thanks
Newsgroup: it.comp.lang.c++
Titolo: controllo if che fallisce (!)

Buonasera a tutti.
Ho una porzione di codice (progetto Win32) nella quale avviene questo 
controllo:
{
float pippo;
    .............
     pippo = a;
(*) if( pippo<=0 )
        exit( 0 );
    .............
}
Veniamo al punto: sia usando MS VS 6 che MS VS .NET in debug
mettendo un break nel punto contrassegnato da asterisco ovvero laddove il
valore
della variabile float è già stato assegnato pari ad "a" e cambiando 
(shift+F9 etc...) il valore della variabile pippo
con uno valore
compreso tra 0 e 1 (per esempio 0.3) il controllo esegue l'istruzione 
exit( 0
) nonostante lo statement "pippo<=0" sia correttamente segnalato come
false.
Nella mia professione non mi è mai capitato alcunché di simile!
La cosa ancora più strana è che se tolgo la condizione di uguale all'if
ovvero:
    .............
     pippo = a;
(*) if( pippo<0 )
        exit( 0 );
    .............
il problema non si verifica ( non viene eseguita la exit ).
Vi chiedo cortesemente di aiutarmi perché sto vagando nel buio.
Grazie a chi vorrà rispondermi.
Distinti saluti,
S. 

 false.
Strano.
Io ho provato con VS C++ 2005 e gcc 3.4.2 su Intel/WinXP SP2 e funziona 
tutto bene cambiando pippo a 0.3.
Sicuro di non aver attivato ottimizzazioni particolari in debug ?
Hai fatto rebuild del progetto in modo da aver sources-debug info 
allineati ?
Ciao
Jarod

 false.
posso ipotizzare che quando fa il confronto tra il float
contenente il valore 0.3 e lo 0 costante,
lui converta implicitamente il float in int
(che quindi diventa anche'esso 0)
per cui diventa vero l'if e di conseguenza esce.
-- 
Ciao!

Newsgroup: it.comp.lang.c++
Titolo: cin??????





Ho implementato una classe che prende in ingresso 
una stringa di caratteri
dalla tastiera e ne scrive il valore ASCII su un 
vettore. Non capisco bene
perche' con la seconda main il programma non 
funzioni.........
#include <iostream.h>
#include 
<string>
int cod[256];
class codifica {
char 
buff[256];
int i;
public:
void 
codifica_ASCII();
};
void 
codifica::codifica_ASCII()
{ 
cin.getline(buff, 
sizeof(buff));
string str=buff;
string::iterator 
it;
for(i=0,it=str.begin();it !=str.end(); 
it++,i++)
{
cod[i]=(int) *it; 

}
}
void main()
{ 
int j,h,k; 

codifica f;
cout << "Inserisci il testo da codificare: 
";
f.codifica_ASCII(); 
cout<<"Il testo codificato 
e':"<<"\n";
for(int 
i=0;i<256;i++)
printf("%d",cod[i]);
cout<<"\n"; 

}
void main()
{ 
int j,h,k; 
char 
c;
codifica f;
cout<<"Si vuole fare una codifica ASCII di 
una stringa? 
(y/n)"<<endl;
cin>>c;
if((c==121))
{
cout 
<< "Inserisci il testo da codificare: ";
f.codifica_ASCII(); 

cout<<"Il testo codificato e':"<<"\n";
for(int 
i=0;i<256;i++)
printf("%d",cod[i]);
cout<<"\n"; 

}
}
Ciao 
Gianni.
 



Scusatemi se ho postato html...
Gianni
--
Posted from 
laguna.tiscalinet.it
 [195.130.224.86] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: [OT]brevetti

E' possibile (o consigliabile) brevettare ("patentare"?) un'algoritmo
o un programma e dove?

 o un programma e dove?
Un programma direi di no. Un algoritmo dipende. Credo che tu possa brevettare il metodo, non l'algoritmo. Comunque ci sono regole diverse a seconda del paese.
Per il dove, quello che si può brevettare lo si può brevettare all'ufficio brevetti (per le procedure è fortemente consigliato, quasi obbligatorio, avvalersi di un avvocato specializzato in brevetti).
-- 
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

o un programma e dove?
Chiedilo alla Microsoft.
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----

o un programma e dove?
Si', penso proprio di si'.
L'algoritmo LZW di compressione credo sia stato brevettato
da Unisys.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it

da Unisys.
Sbaglio o nella UE non è riconosciuto il brevetto sugli algoritmi?
Comunque cosa c'entra con il c++?
-- 
Marco Barisione (ICQ 84277092)
Su it.news.gruppi si sta discutendo della creazione di it.comp.lang
dove si parlerà dei linguaggi senza un proprio newsgroup e dei
confronti fra i diversi linguaggi.
Se sei interessato unisciti alla discussione.

Sbaglio o nella UE non è riconosciuto il brevetto sugli algoritmi?
Credo di si'.
Tuttavia negli Stati Uniti e' sicuramente riconosciuto e sia
LZW (ne ho trovato riscontro), sia gli algoritmi di
compressione MP3 sono brevettati.
Credo che se si sviluppi del software destinato a girare in
diversi paesi, si debba essere a conoscenza di cosa e'
brevettato o meno in quei paesi ed eventualmente presentare
un disclaimer col quale si richiede di autorizzare
esplicitamente l'uso del programma all'utilizzatore.


 o un programma e dove?
Negli USA e  in Giappone è ammesso il brevetto.
In Europa per il momento un algoritmo puro non è brevettabile(Convenzione di
Monaco. Art 52). E' invece brevettabile un sistema Hardware contenente l'
algoritmo (un sistema embedded ad esempio). Forti interessi economici
premono per l'abolizione di tale limitazione ma per il momento gli stati
membri della UE hanno rimandato la modica di tale norma.
http://www.european-patent-office.org
----
Sergio Bianchi

Newsgroup: it.comp.lang.c++
Titolo: Libreria standard

Salve,
Esiste una 'bibbia' della libreria standard pensata per i programmatori che
la devono implementare?
Grazie

"Filip Janiszewski" <Xfil...@tiscalinetZ.it> ha scritto nel messaggio
news:wqmta.38130$DN.9...@tornado.fastwebnet.it...

Per quanto io sappia poco sull'argomento, cmq mi pare di ricordare che il
secondo volume di Thinking in c++ di B. Eckel è tutto sulle STL.
(
www.bruceeckel.com
)
Ciao, sav :-)
--

 la devono implementare?
Ovviamente lo standard del linguaggio "ISO/IEC 14882-1998 Programming
Languages - C++", che puoi trovare qui:
http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+14882%2D1998
Ciao,
Nicola
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: [puntatori a funzioni] per un framework di test...Tommaso

 offre qlc del genere...
RTTI -> Run-Time Type Identification
Come lo useresti per arrivare a qualcosa che assomigli alla reflection?
Spiega spiega :)
xpost e f/up
Luca
-- 
Home: 
http://kronoz.cjb.net
Not an editor command: Wq

 Spiega spiega :)
Il fatto che non avessi dato altri particolari all'inizio rivela la mia 
profonda ignoranza a riguardo, mi pareva ovvio ;D
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 profonda ignoranza a riguardo, mi pareva ovvio ;D
Ah, ok :)
Comunque il caso dell'OP si potrebbe risolvere usando una classe base
astratta:
class TestFramework {
        public:
                virtual int setup(void) = 0;
                virtual void teardown(void) = 0;
                virtual void runTests(void) = 0;
};
o qualcosa di simile. Poi basta registrare le varie classi (derivate da
questa) e chiamare a vari metodi.
Luca
-- 
Home: 
http://kronoz.cjb.net
"La mia teoria scientifica preferita e` quella secondo la quale gli 
 anelli di Saturno sarebbero interamente composti dai bagagli andati 
 persi nei viaggi aerei." -- Mark Russel

Newsgroup: it.comp.lang.c++
Titolo: Come intercettare le chiamate al DNS?

Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client)?
Pensavo a qualcosa che si interponga tra windows e winsock (o qualcosa del
genere).
Qualcuno ha qualche idea?
Grazie.
        Andrea

Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client) sulla stessa macchina?




Quale metodo posso utilizzare per intercettare le chiamate fatte al DNS da
un'applicazione qualsiasi (browser od altro client)?


 qualcosa del genere).
sei fortunato, perchè Winsock lo prevede nativamente. Scrivi un Winsock 
Name Provider, installalo, configura Winsock in modo che venga chiamato 
per primo, e tutte le richieste di risoluzione di nomi passeranno prima 
da te. Alcuni componenti di sistema (mi viene in mente il servizio RPC) 
non usano Winsock ma si interfacciano direttamente con il driver TCP, e 
quindi qualche richiesta potrebbe sfuggirti, ma saranno la minoranza
Ad ogni modo, questa è una domanda su Windows, non su C++, quindi basta 
discuterne qui. Se hai domande, falle in it.comp.programmare.win32
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.1.3. C, C++ and ASM developers
                               and beta testers are welcome!
Newsgroup: it.comp.lang.c++
Titolo: Aridaie!!!!!

Scusatemi un sacco(???)!
Non c'è nessuno che si è preso la briga di tradurre la guida agli Interrupt
di Ralf Brown???
Se si, dove la trovo su Inter(rupt)net???
Ne ho un grande bisogno(ce l'ho in Inglese, ci capisco, ma in Italiano
sarebbe molto molto meglio!!!)
Grazie mille!

Non c'č nessuno che si č preso la briga di tradurre la guida agli Interrupt


Ehm....infatti!

 Non c'è nessuno che si è preso la briga di tradurre la guida agli

Newsgroup: it.comp.lang.c++
Titolo: Dev 5 C++

Ciao,qualcuno usa Dev 5 C++? - sono alle prime armi... -
Il problema č che non riesco ad ottenre un .exe
Ad esempio :
#include <stdio.h>
main()
{
printf("Hello! \n");
}
lo compilo,non mi da errori, ma non mi fa vedere neanche nulla!
Perchč?
ciao e grazie
xfile
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Perchč?
Questo probabilmente dipende da come hai creato il progetto
(devi fare una "console application") e dal fatto che ti apre la finestra
col teminale e poi la richiude subito.
una soluzione banale, a NON portabile č mettere alla fine del tuo programma
una:
std::system("PAUSE");
che blocca l'esecuzione del programma fino alla pressione di un tasto.
Mi pare che per la system tu debba includere <cstdlib> , ma non ci giuro.
facci sapere.
-- 
Gerolamo
www.overweb.it

 
www.overweb.it
GRAZIE!!!
Ti farò sapere.
Xfile


 ha scritto nel messaggio
news:217Z133Z162Z67Y...@usenet.libero.it...


On Mon, 17 Nov 2003 19:36:22 GMT, 
solo_pe...@libero.it
 (xfile)
wrote:
aggiungo: invece che mettere std:: davanti ad ogni funzione, metti
using namespace std all'inizio del file
---
Membro numero 85 del Luigino Fans Club.
Luigino sei tutti noi!
Anche se ti ho plonkato il tuo ricordo sarà per sempre!

PREMA UN TASTO.
Questo e' un grosso, strano, limite di Dev C++
Oramai quasi tutti gli IDE (Anjuta sotto Linux e' bellissimo per
questo; da anche il valore restituito da main() ) hanno di default
l'attesa della pressione tasto per chiudure la console.
Newsgroup: it.comp.lang.c++
Titolo: ZLibTool.Ocx Qualcuno lo conosce?

Ho usato ZLibTool.Ocx in un progetto VB6.
Se lancio il progetto dall'interno di VB6, tutto OK.
Se compilo l'eseguibile e lo lancio, invece, compare sempre l'errore
     "System Error &H80004005 
(-2147467259
). Errore non specificato"
e questo per quanto banale sia l'applicazione.
Altro indizio:
Uso la "Creazione Guidata Applicazioni" che genera un bel form con tanto
di menů e toolbars; se lo lancio, ovviamente tutto funziona.
Se aggiungo il controllo ZLibTool.Ocx, creo l'eseguibile e lo lancio,
compare l'errore
     "Errore 7 - Out Of Memory"  (L'ho riportato a memoria)
Qualcuno sa aiutarmi?
-- 
Posted from 
chimica-studenti1.polosci.unifi.it
 [150.217.144.40] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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

Ho usato ZLibTool.Ocx in un progetto VB6.
E con il c++ cosa c'entra?
-- 
                    Marco Barisione (ICQ 84277092)
Se sei interessato alla creazione di it.comp.lang (per i linguaggi di
programmazione senza un gruppo apposito e per i confronti fra i
linguaggi) partecipa alla discussione sul manifesto su it.news.gruppi.

Scusate, č che avevo letto che la ZLibTool č scritta in C...
-- 
Posted from  [62.98.131.157] 


Scusate, č che avevo letto che la ZLibTool č scritta in C...
Appunto qui si parla di C++  :-)
Comunque anche su un gruppo in cui si parla di c sarebbe OT in quanto
dipende strettamente da windows.

Newsgroup: it.comp.lang.c++
Titolo: borland C++ 5.5: come si usa?

Salve a tutti.
Ho scaricato il package di Borland C++ 5.5.
Nella sub-directory BIN c'è l'inferno tra linker e compilatori.
Desideravo sapere: a che cosa servono i file qui sotto?
Li elenco qui di seguito e, quando avete tempo, mi dite a cosa servono.
------------
      File exe
------------
 bcc32             //Dovrebbe essere un compiler
 brc32
 brcc32
 coff2omf
 cpp32            //Dovrebbe essere un compiler
 grep
 ilink32           //Linker?
 impdef
 implib
 make
 tdump
 tlib
 touch
 trigraph
 fconvert
------------
       File dll
------------
 cc3250
 cc3250mt
 lnkdfm50
 rlink32
 rw32core
e infine C.LIB e builtins.mak
Graaaazie.
c:\thinkcpp\_

 Nella sub-directory BIN c'è l'inferno tra linker e compilatori.
[cut]
dovresti guardare il file readme.txt.
In pratica devi creare due file che dovrai chiamare bcc32.cfg e ilink32.cfg.
Questi dovranno contenere rispettivamente le righe:
-I"F:\Borland\BCC55\Include"
-L"F:\Borland\BCC55\Lib"
e
-L"F:\Borland\BCC55\Lib"
Spero di esserti stato di aiuto.
Salvo


Come li creo i file cfg? Va bene notepad?
c:\thinkcpp\_

Altra domanda.
Siccome non ne conosco le classi,
potete dirmene qualcuna per attivare, per esempio, le finestre e tutte le
cose concernenti?
Qualcosa come window, combobox,button ecc...
Grazie!
c:\thinkcpp\_

Fabio,
questo ng non si occupa di classi per combobox, finestre, ecc.
Per quello ci sono ng più adeguati, alcuni dei quali già ti hanno indicato.
Il Borland C++ 5.5 non ha le classi che tu chiedi (non ha la VCL) ma ha
incluso il PDK, Paltform Development Kit, in pratica le API nude e crude di
Win32.
Come configurare  il Bcc55 è scritto in un mio articolo che puoi leggere
www.programmazione.it
. Saluti.
--
--
Lello Mele
--
HOMEPAGE: 
http://www.lellomele.it
eMAIL   : lellomele@nospam@
libero.it

 Come li creo i file cfg? Va bene notepad?
Sě
Avevo dimenticato di dirti che se hai installato il compilatore in una
cartella diversa dalla mia (ad esempio c:\BorlandC++) dovrai cambiare
opportunamente quelle righe.
Infine per compilare i programmi dovrai digitare o dal prompt dei comandi o
dal comando esegui di start la seguente riga
bcc32 [ed eventualmente il percorso ove si trova] miofile.cpp
dove miofile.cpp contiene il codice sorgente c++.

 Come li creo i file cfg? Va bene notepad?


 Desideravo sapere: a che cosa servono i file qui sotto?
http://makeashorterlink.com/?V29852141
--
Gerolamo

 Desideravo sapere: a che cosa servono i file qui sotto?
argh. L'help! leggi l'help!
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!

Come li creo i file cfg? Va bene notepad?
si ma ti consiglio di leggerti il file readme.txt
--
Rhymes
rhy...@myself.com
" ride or die "
Newsgroup: it.comp.lang.c++
Titolo: dove sbaglio?

Salve!
Il mio problema e' questo: non riesco a far ritornare una stringa (char *)
come 
elemento di ritorno di una funzione elaborata DEMTRO ad una dll.
Dal main.cpp chiamo:
char * pippo = NomeSenzaExt("aaaaaa.dat",hwnd);   (oppure uso
strcpy(src,dest...)...
e  ...
QUESTA e' la semplice procedura (di prova) che ho dentro ad una dll: (la
chiamata
della procedura funziona bene... ma...)
char * FAR PASCAL NomeSenzaExt(LPSTR nomefile,HWND hwnd)
// INPUT:	"aaaaaa.dat"
// OUTPUT:	"aaaaaa"
{char frase[64];
int lung;
int indice;
indice=0;
while (nomefile[indice]!='.')  { frase[indice]=nomefile[indice];
indice=indice+1; }
frase[indice]=NULL;
DEBUG(frase,hwnd);   // qui frase contiene correttamente  "aaaaaa" ...
return frase;
};         // ma quando esce dalla DLL, nel programma principale non riesco
	    // proprio a farmi mostrare "aaaaaa" !
Esistee una qualche tabella di conversione dei tipi a cui posso fare 
riferimento ? Ho provato anche con LPSTR al posto di char * ... ma nulla da
fare.
Qualche problema simile l'ho avuto col passaggio di numeri... ma dopo qualche 
tentativo andato a vuoto... ci sono riuscito... MA QUALI SONO LE REGOLE DA
SEGUIRE?
Ho una serie di mie piccole procedure che vorrei mettere dentro ad una sola
dll...
ma quasi da subito ho avuto problemi proprio nel passaggio di parametri! 
Un'altra cosa... che legame esite tra il modo in cui creo una dll ed 
i compilatori che adopero? Cioe' come devo fare per creare una dll che sia
facimente richiamabile da qualsiasi tipo di .EXE  (cioe' fatto con cbuilder,
delphi, vbasic o altro...) ?
						Grazie mille!!!
 
cri...@hotmail.com
COMPLIMENTI A TUTTE QUELLE PERSONE CHE SCRIVONO SPESSO IN QUESTO FANTASTICO
NEWSGROUP   'agevolando'   a tutti degli ottimi consigli!! Grazie.
*****************************************************************************
+                                                                          
+	HAPPY SURFING ON THE NET !!                     	Ciao!!!
+        								
+	                                by
+
+							  C R I X 98
+
***************************************************************************
--
Posted from 
mta2.iol.it
 [195.210.91.152]
via Mailgate.ORG Server - 
http://www.mailgate.org

 delphi, vbasic o altro...) ?
Il fatto di dichiarare le funzioni PASCAL (cioè __stdcall) è un buon
inizio; per importare una funzione in VB, mi pare che sia un requisito
indispensabile. Il problema è la decorazione dei nomi; per fare in modo che
le funzioni vengano esportate con il nome privo di decorazione, potresti
includere un file .def nel progetto della libreria, specificando così
inequivocabilmente gli exports.
Stefano.

             // proprio a farmi mostrare "aaaaaa" !
L'array frase è locale alla funzione e quindi viene rilasciato al
termine della stessa. Potresti:
1. Utilizzare le stringhe della libreria standard C++.
2. Passare l'array come parametro della funzione e quindi gestirne il
lifetime dall'esterno.
3. Allocare dinamicamente l'array e restituirne il puntatore alla
memoria allocata (ma poi sarebbe responsabilità del chiamante deallocare
la stessa).
EMG
Newsgroup: it.comp.lang.c++
Titolo: derivare derivare derivare...

salve raga
sto implementando un motorino per un videogiochino solo che vorrei farlo con
un po' di stile.
allora il concetto č questo, diciamo che ho delle classi che seguono codesto
schema.
class Coordinator{
 public:
  Coordinator();
 protected:
  int Num;
};
class Derivated1 : public Coordinator{
 public:
  Derivated1();
 protected:
  int Num1;
};
class Derivated2 : public Coordinator{
 public:
  Derivated2();
 protected:
  int Num2;
};
class Cap : public Derivated1 , public Derivated2 {
 public:
  Cap();
};
ecco tanto per capirsi. voi dite, che problema c'č?e invece il problema c`č!
vorrei fare in modo che il membro dati Num presente in coordinator fosse lo
stesso quando lo uso in Cap.. che casino !insomma quello che voglio fare č
che quando istanzio un oggetto dalla classe Cap cosě definita e chiamo un
qualsiasi metodo di questa classe , questo metodo possa usare Num (di
Coordinator) e che questo Num sia lo stesso che usano Derivated1 e
Derivated2.
es: Derivated1 scrive un valore su Num, Derivated2 legge da Num e trova lo
stesso valore che ha messo Derivated1, lo stesso vorrei che potesse farlo
anche Cap
Questo sarebbe il modo piů bello di implementare ciň che mi serve dal
momento che poi doveri implementare anche Cap2 che magari contiene solo
Derivated1 oppure solo la 2.... oppure la 1 e un ipotetica 3.... insomma
avete capitocosa mi serve?
c'č un modo per ottenerlo?
NON posso mettere Num come static xche se magari devoistanziare piů oggetti
di classe Cap non devono andare a scrivere sempre sullo stesso ma per ognuno
serve il suo.
uff che cosa complicata :)
scusate il post infinito... bye bye

 Derivated2.
Per ottenere questo bisogna che Derivated1 e Derivated2 (non sono nomi
inglesi, meglio Derived1 e Derived2:-) ereditino *VIRTUALMENTE* dalla
Coordinator: "class Derived1: virtual public Coordinator" ecc.  La
derivazione virtuale serve proprio a questo: a far si` che in caso di
eredita` multipla i vari oggetti, delle classi 'base intermedia', che
ereditano virtualmente dalla stessa 'base comune', CONDIVIDANO
l'"oggetto-base" di classe base-comune, invece di avere ciascuno
il proprio oggetto-base (contenuto per valore, in pratica; si puo`
dire che l'eredita` virtuale implica un contenimento per riferimento
dell'oggetto-base).
Ci sono altri approcci meno canonici, ma in pratica si riducono a
"reimplementarsi in casa" spizzichi e bocconi dell'eredita` virtuale,
meglio usare quella che ti da` il compilatore...
Alex

GRAZIE GRAZIE GRAZIE
anche per le correzioni dell'inglese :)
immaginavo che centrasse virtual da qualche parte infatti avevo provato a
metterlo davanti a Num ma mi diceva che giustamente è un membro dati e non
si poteva fare:)
GRAZIE ANCORA!!!!!
Newsgroup: it.comp.lang.c++
Titolo: scambiare bit e byte

Ho un buffer di numeri a 32 bit in virgola mobile (quindi direi un float
*buffer).
Dovrei leggere l'elemento n-esimo e fare il seguente output:
- elemento ennesimo come float 32 bit    (questo e' facile!) ;-)
- elemento ennesimo come float 32 bit, ma con i 4 byte che lo compongono
scambiati nel seguente modo:
        byte 0 <-> byte 3
        byte 1 <-> byte 2
- elemento ennesimo come float 32 bit, ma con i bit dei vari byte scambiati
nel seguente modo:
        bit 7 <-> bit 0
        bit 6 <-> bit 1
        bit 5 <-> bit 2
        bit 4 <-> bit 3
- elemento ennesimo come float 32 bit, ma con i 32 bit scambiati nel
seguente modo:
        bit 31 <-> bit 0
        bit 30 <-> bit 1
        bit 29 <-> bit 2
        bla bla bla
Mmm... come mi conviene codare questa parte di codice??
Grazie, Morusaka!!

Morusaka 2004-05-14 :

Non so quanto tu sia in argomento, con questa domanda.
Tra l'altro, il tuo mi pare più un esercizio che altro, e gli esercizi
sono fatti per pensarci su, altrimenti non servono a nulla.
Comunque, se devi scambiare i bit di parecchi byte, ti conviene costruire
una tabella di traduzione di 256 byte. Il byte da tradurre fa da indice
nella tabella.
Quando avrai risolto gli scambi tra bit in uno stesso byte, e lo scambio
tra byte inalterati, avrai risolto anche l'ultimo tipo di scambio che
elenchi.
Se l'algoritmo non deve essere veloce dimentica tutto ciò e datti subito
da fare con &, |, >> e <<
ciao
Walter

 da fare con &, |, >> e <<
Sarà dura, con dei float...
-- 
Gerolamo

Gerolamo 2004-05-17 :

Sarà dura che non vengano fuori dei NaN, vorrai dire!
Comunque con i cast non c'è problema (tranne la portabilità).

 Comunque con i cast non c'è problema (tranne la portabilità).
A tal proposito ho in giro (funzionante) un pezzo di codice che
fa più o meno questo:
#include <stdio.h>
int main()
{
  unsigned int i = 0x1A2B3C4D;
  void * vp = &i;
  float f;
  f = *((float*)vp);
  printf("i: %X\n",i);
  printf("f: %f\n",f);
}
Mi chiedevo se, a parte la portabilità, potesse creare problemi
fare una cosa del genere...
-- 
Gerolamo

 diverso).
Ok. Ma se il formato è IEEE questo non crea problemi, giusto?
Spiego il mio problema:
In pratica il fatto è che mi arrivano sulla seriale, un bit alla volta,
dei float.
Io alla seriale posso accedere solo come 8 bit alla volta
(unsigned char, per me.)
Quindi l'unica soluzione che ho trovato è prendere 4 unsigned char,
concatenarli in un unsigned int e poi convertire in quel modo
bislacco l'unsigned int in un float.
C'erano alternative migliori?
-- 
Gerolamo

 C'erano alternative migliori?
A parte che potevi fare direttamente
f = *reinterpret_cast<float*>(&i);
direi di no :-)
ciao
Walter

 bislacco l'unsigned int in un float.
Dal punto di vista della portabilita' e' leggermente piu' sicuro usare
come buffer un array di 4 unsigned char allocato dinamicamente. Questo
ti garantisce, se il tuo compilatore e' conforme, di evitare problemi
di allineamento.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: gmtime,mktime

Mi risulta che le due funzioni non funzionino correttamente.
Piccolo esempio di codice:
 TempoAcq.tm_isdst = -1;
 TempoAcq.tm_yday = 0;
 TempoAcq.tm_wday = 0;
 Secondi = mktime(&TempoAcq);
 TempoAcq = *gmtime(&Secondi);
In teoria TempoAcq dovrebbe essere lo stesso di prima della chiamata a
gmtime,perņ č diverso !!!!!
E' un bug o io non sono in grado di usare le due funzioni correttamente ??

E' un bug o io non sono in grado di usare le due funzioni correttamente ??
e il resto delle inizializzazioni ? Metti a zero i campi tm_wday e
tm_yday, ma tutti gli altri ? Tieni presente poi che potrebbero
esserci dei problemi dovuti all'ora legale e al fuso orario (local/utc
time). Ad esempio la mktime converte un "local time" in numero di
secondi mentre la gmtime converte il numero di secondi in un "utc
time" (utc=coordinated universal time). Ti consiglio di leggere
*molto* accuratamente il manuale del compilatore nei capitoli dove
parla delle funzioni di Time Management.
Gianpaolo Bottin
- Live Long and Prosper -

Newsgroup: it.comp.lang.c++
Titolo: OT] - Dubbio sulla CObList !

Ciao a tutto il NG.
Non so se sono OT, ma in ogni caso scusatemi.
Sto programmando da qualche mese con VC++ 6.0 con le MFC. Da qualche giorno
mi č venuto un dubbio sulla CObList.
In particolare il metodo "RemoveAll ()" che cosa fą. Io penso che rimuova la
lista ma non deallochi la memoria assegnata agli oggetti contenuti nella
lista. Nel mio programma per distruggere la lista, alla fine della sessione
di lavoro, faccio :
 /* DEALLOCAZIONE DELLA LISTA DI CORONE */
   while (!MyListCorone.IsEmpty())
   {
      CCorona *pnt_Corona = (CCorona *)(MyListCorone.RemoveHead());
      delete pnt_Corona;
   }
 /* FINE DEALLOCAZIONE */
Tutto cio' puo' essere sostituito da :
MyListCorone.RemoveAll()
ottenndo lo stesso risultato ?
Grazie anticipatamente 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 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Rilevazione messaggi in windows (era "Aiuto! Messaggi e DEVICECHANGE")

Dopo aver fatto diversi (molti!) tentativi sono riuscito a scrivere un
programmino per la lettura dei messaggi in BC++ e soprattutto per
intercettare l'evento WM_DEVICECHANGE.
Se può essere utile a qualcuno ho messo un articoletto ed il codice
sorgente sul mio sito
http://www.genhome.org/genhome/index.html
alla voce technology/devel
Saluti!
Matteo

Buon per te. Continui a essere fuori tema in questo newsgroup, pero'.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Classe con una stringa dentro

Se io definisco una classe come segue
class simpleClass
{
public:
	simpleClass(void);
	~simpleClass(void);
	void setString(std::string* name);
	std::string getString();
private:
	std::string m_name;
};
e chiedo la dimensione della classe appena istanziata ottengo 28. 
Se poi modifico la stringa con una frase piuttosto lunga con size 233
la dimensione della classe rimane sempre 28. la classe non dovrebbe
contenere la stringa? Se non contiene la stringa cosa contiene? forse
un puntatore a una classe string?
Grazie Mille 
Massimo

Massimo wrote:

chissà? siccome non ho ancora fatto riparare la sfera di cristallo, 
dovresti postare anche un blocco di codice compilabile che riproduca il 
problema o almeno le definizioni delle funzioni di simpleClass.
-- 
bash: impossibile: command not found

La classe che ho definito è la seguente 
class simpleClass
{
public:
	simpleClass(void);
	~simpleClass(void);
	size_t nameDimension();
	void setString(std::string* name);
	std::string getString();
private:
	std::string m_name;
};
e la sua implementazione è la seguente:
simpleClass::simpleClass(void)
{
	m_name = std::string("proviamo a vedere cosa succede");
}
simpleClass::~simpleClass(void)
{
}
size_t simpleClass::nameDimension()
{
	return sizeof(this->m_name);
}
void simpleClass::setString(std::string* name)
{
	m_name = *name;
}
std::string simpleClass::getString()
{
	return m_name;
}
Il codice dentro il main è il seguente:
simpleClass classe;
size_t dimension = sizeof(classe);
printf("dimensioni Iniziali: %d \n",dimension);
printf("Dimensioni Iniziali stringa: %d \n",classe.nameDimension());
classe.setString(new std::string("Stringa di prova che potrebbe essere
interessante condividere con il resto del mondo!"));
printf("La stringa è la seguente: ");
printf(classe.getString().c_str());
printf("\n");

 un puntatore a una classe string?
L'oggetto std::string ha le sue modalitŕ per allocare la stringa e il
programmatore non deve preoccuparsi di dove quella effettivamente risieda.
Di certo, una stringa di dimensioni variabili non puň risiedere nel blocco
di memoria in cui č instanziato l'oggetto.
Max

 printf("\n");


Max
effettivamente hai ragione, La stringa, essendo di dimensioni
variabili non può risiedere nel blocco di memoria in cui è istanziato
l'oggetto.
Grazie
Massimo

 Massimo

Il Tue, 03 May 2005 14:04:59 GMT, Soviet_Mario <Sov...@MIR.CCCP> ha
scritto:

Allora nella classe cosa è memorizzato se non il puntatore. Se io
scrivo 
std::string stringa
cosa ottengo all'interno della classe???
Grazie Mille
Massimo

 cosa ottengo all'interno della classe???
Non è importante. Sono dettagli implementativi di std::string. Se ci tieni a
saperlo, apri l'implementazione di std::string (che, essendo un template, è
interamente negli header della libreria standard) e guardati come è
progettata la classe.
Max
Newsgroup: it.comp.lang.c++
Titolo: namespace: bah!?

Ho qualche problema ad usare i namespace: so a cosa servono, ma non so
esattamente come usarli (problema di sintassi, insomma). In
particolare mi trovo in difficoltà quando devo utilizzare std; ad
esempio anche solo per utilizzare std::string.
Possibile che tutte le volte debba anteporre lo "std::"? So che potrei
aggiungere qualcosa del tipo:
using namespace std;
ma poi se voglio utilizzare qualcosa al di fuori di std come cavolo
faccio?!
Come avrete intuito la mia confusione sull'argomento è abissale...
GRAZIE a chiunque possa darmi una mano.
			Daniele.

faccio?!
Allora, primo punto fondamentale da chiarire e` cosa significa
lo "using namespace"...:
    using namespace pippo;
"INIETTA" gli identificatori definiti in pippo nel tuo namespace
corrente -- il che non ti impedisce affatto di usare ANCHE
identificatori definiti nel tuo namespace corrente, o in altri
ancora (puoi avere piu` di un namespace "using" alla volta).
L'unica cosa da ricordare e` che, se tu hai ad esempio:
namespace pippo {
    int funz();
    int peppa();
};
namespace pluto {
    int funz();
    int plop();
};
using namespace pippo;
using namespace pluto;
ora puoi usare liberamente peppa() e plop() senza problemi,
ma NON funz() senza qualificazioni perche` sarebbe ambigua,
dovrai comunque dire pippo::funz() o pluto::funz() per chiarire
quale intendi delle due omonime.
Seconda cosa fondamentale: non sei obbligato a iniettare
TUTTO un namespace (come fai con "using namespace"),
puoi invece scegliere specificamente gli identificatori che
ti interessano:
#include <string>
using std::string;
adesso puoi usare liberamente string senza qualificazioni,
ma tutti gli altri identificatori del namespace std restano "li`
dentro", usabili solo con qualificazione std:: esplicita, e
senza conflitti possibili coi "tuoi" (o quelli di altri namespace).
Piu` chiaro adesso, spero...?
Alex