mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Sapere se un metodo e' stato sovrascritto

Ciao.
Supponiamo che io abbia:
class A {
  public:
   virtual a() const {...};
};
class B:public A {
  public:
};
class C:public A {
  public:
   virtual a() const;
};
Ora supponiamo che io voglia sapere, dato un oggetto A*, se in 
quell'istanza a() e' la versione base di A (come e' in A e in B) o se e' 
stata sostituita (come e' in C).
C'e' modo?
  bye & Thanks
	av.

     av.


wrote:

Questa suona tanto di soluzione sbagliata ad un problema magari
sensato. In ogni caso, dal momento che in C::a() sai che sei un
override, fai li' qualcosa di riconoscibile.
Ciao,
Nicola

 c'ho provato con qualche accrocchio :-)
Gia' :-)
A quel punto, molto piu' semplicemente, posso mettere un secondo metodo 
che restituisce un bool e fare l'override anche di quello.
"Error-prone" per "Error-prone"...
Grazie comunque.
  bye
	av.

 override, fai li' qualcosa di riconoscibile.
Del tipo? Scusa, ma non ho capito cosa intendi.
Quello a cui pensavo io e' qualcosa di simile al seguente pseudocodice:
A*c=...;
if (c->a==A::a) {...} else {...}
oppure
if (&c->a==&A::a) {...} else {...}
Insomma, visto che sono metodi virtuali, dovrebbe in linea teorica 
essere possibile risalire al loro indirizzo e confrontarli...
Sto chiedendo troppo?
  bye & Thanks
	av.

 if (&c->a==&A::a) {...} else {...}
Allora più semplicemente:
A *c=...
if (dynamic_cast<C *> c) {
   ...
} else {
   ...
}
E.


Non e' detto che C sia l'unica classe a ridefinire a().
In questo modo se io (o un utente della mia libreria) derivo una nuova 
classe da A e ridefinisco a(), dovrei aggiungere questa nuova classe 
all'elenco dei miei if (dynamic_cast<...*>).
  bye & Thanks
	av.

 all'elenco dei miei if (dynamic_cast<...*>).
Dovresti vedere se il tuo compilatore supporta la RTTI (RunTime Type 
Information). Ci dovrebbero essere delle funzioni apposta per sapere se 
una classe X è derivata da Y.
E.

 una classe X è derivata da Y.
I miei compilatori supportano tutti la RTTI e gia' uso dynamic_cast 
spesso per determinare la derivazione.
Non e' pero' quello il problema in questo caso.
Saputo che C e' derivata da A (ma quello lo so a livello statico) 
dynamic_cast non mi dice se C ha sostituito il metodo a().
Per la cronaca, conosco anche typeid, ma non credo che neanche quello 
faccia al caso mio.
  bye & Thanks
	av.
Newsgroup: it.comp.lang.c++
Titolo: [OT] E Alex?

E' dalla fine di luglio che non vedo piu' messaggi di Alex Martelli, su
questo news-group (e neanche in qualche altro, dove spesso interveniva).
Spero che sia in vacanza, o stia facendo qualche lungo viaggio, per lavoro o
per divertimento, e che comunque stia bene. Tutto sommato, i suoi interventi
non erano male (!), e mi dispiacerebbe che si fosse stancato di scrivere.
Saluti a tutti. Andrea.


Condivido.
EMG

Effettivamente e' un po' che me lo domando anch'io. Sono tornato dalle
ferie all'inizio di agosto e mi e' sembrato di avere sbagliato
newsgroup. Adesso dei "soliti noti" Alex e' l'unico che continua a
mancare e si sente, anche se alcune recenti acquisizioni contribuiscono
notevolmente alla qualita' delle discussioni.
Ciao,
Nicola

Tutto sommato, i suoi interventi non erano male (!), 
eh eh... "tutto sommato" ;)
Si sente la mancanza di Alex !...
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

Perņ..... stavo pensando di postare la stessa cosa anche io....qualcuno mi
ha preceduto.
Condivido perņ anche pienamente sui recenti "acquisti" del NG.
;-)
Sebastiano


So che e' stra-impegnato con il lavoro. 
Gli ho gia' fatto notare che la sua mancanza si sente.
Mah!! Speriamo torni presto. E sempre piacevole 
discutere/litigare  con lui o condividere le sue idee.
Fausto

notevolmente alla qualita' delle discussioni.
Perchè non gli scriviamo una "petizione" per tornare tra noi?

A dire il vero gli ho postato un link a questo thread, ma non si e'
fatto sentire.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Miglior software

Mi sapreste indicare qual'è il miglior programma interfaccia/compilatore per
il C++? Vorrei sapere il nome del programma più utilizzato nelle
applicazioni lavorative di tipo ingegneristico e/o di programmazione.
Anthonyt


"Vi or emacs? .....OpenOffice! =)"
 

 wrote in message
news:jhI18.8745$tl3.2...@twister2.libero.it...

Sei OT.
Sono tanti e in linea di massima vengono usati tutti. Però non parli del
sistema. Dato che posti con Outlook suppongo si tratti di Windows.
Nonostante quel che si dice uno dei tools più usati in ambiente windows
(ammesso che non sia in realtà il più usato) è ovviamente quello di MS.
Se fai questa scelta ti consiglio ... di aspettare. Fra meno di un mese
(26 giorni, per la precisione) uscirà la nuova versione dell'ambiente di
sviluppo di MS (Visual Studio.NET). A meno che tu non abbia un
abbonamento a MSDN che comprende i tool di sviluppo (che se sviluppi per
Windows ti consiglio comunque di fare). In questo caso lo riceverai come
parte dell'abbonamento pochi giorni prima dell'uscita (te lo spediranno
la prima settimana di febbraio). Se proprio hai fretta, sei abbonato a
MSDN, hai aperto l'account "passport" e hai un accesso a internet veloce
o permanente (o i soldi per permetterti di stare attaccato per ore) poi
scaricarlo fin da oggi dall'apposito sito riservato agli abbonati MSDN.
--
Andrea Ferro
IHHC - Member of HT-Group  DVD Authoring operator  Fan of I.Asimov
C++ Master: 
http://www.brainbench.com/transcript.jsp?pid=2522556
This post expresses personal opinions which may or may not be the
opinions of the company(s) I work for. I speak for myself only.

Newsgroup: it.comp.lang.c++
Titolo: Codice sorgente printf

Salve a tutti,
c'è qualcuno che può postarmi o dirmi dove poter trovare il codice sorgente
della funzione printf()?
Ciao e Grazie.

 ha scritto nel messaggio
news:ard8pj$q1c$1...@pluto.sm.dsi.unimi.it...


 Non so' se e utile ma ho come SO WIN 98 e compilatore IAR.
Curiositą: che ci devi fare?
-- 
Luc.

 ha scritto nel messaggio
news:MPG.18446990e...@tornado.fastwebnet.it...




CREDO ma non sono sicuro che printf sia una chiamata di sistema ovvero a
sua volta richiama la funzione del kernel per stampare a video le
stringhe. Nel caso di linux puoi trovare i sorgenti di questa funzione
(printk) in qualunque distribuzione (/usr/src/linux.../kernel/printk.c),
per windows.. bè.. aspetta che i sorgenti diventino free
Ciao Matic

 (printk) in qualunque distribuzione (/usr/src/linux.../kernel/printk.c),
printk e` una cosa totalmente diversa. printf (e relativa famiglia) sono
implementati a livello di libreria  C (libc.so). Le funzioni si limitano
a costruire la stringa ed usare write sullo stdout.
Ma qui` siamo OT.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Windows NT crashed.
I'm the Blue Screen of Death.
No one hears your screams.

 Kronos
WOW !! non c'avevo capito assolutamente nulla :))))
Newsgroup: it.comp.lang.c++
Titolo: cin e cout

Salve!
ho un problema con questo codice;
string s;
float f;
cout<<"inserisci stringa: ";
cin>>s;cout>>endl;
cout<<"inserisci numero: "
cin>>f; // se invece di un numero inserisco un carattere si incasina e sono 
costretto a chiudere       l'applicazione
come posso risolvere?
grazie

 ha scritto nel messaggio
news:cuqc0n$fbk$1...@fata.cs.interbusiness.it...

Puoi sempre scrivere:
cin>>s;
e  poi convertire in numero gestendo gli errori.
Ciao, Enrico

 ha scritto nel messaggio 
news:qrjQd.544135$b5.25...@news3.tin.it...


 puoi farmi un esempio?
...pare che tu sia agli inizi; allora credo che sarebbe molto 
"salutare" per te il seguente esercizio programmatorio:
"Data una stringa s, verificare che essa contenga un valore numerico."
Supponiamo che tu svolga tale esercizio; allora avrai una funzione 
is_number(), es.:
// Ritorna true se "s" contiene un numero, 
// altrimenti false
bool is_number( const std::string & s );
Allora ti basta fare:
<CODE>
#include <string>
#include <iostream>
using std::string;
using std::cout;
using std::cin;
using std::endl;
string s;
float f;
cout << "Inserire numero: ";
cin >> s;
if ( ! is_number(s) )
  cout << "ERRORE: non hai inserito un valore numerico" << endl;
else
  ...converti s in numero, ed elaboralo.
</CODE>
...un tempo forse i programmatori si "sbattevano" di piu' sui problemi
:)
Dan
Newsgroup: it.comp.lang.c++
Titolo: Qreport aiuto

Ciao a tutti!!
Ho quasi terminato la mia applicazione, usando il borland c++ builder e
dovrei occuparmi della fase di stampa.
Quindi vorrei chiedervi ,dato che devo stampare il contenuto di un database,
l'uso dell'oggetto Qreport e giusto in questo caso? Potete spiegarmi come
dovrei usarlo e le proprieta' e i metodi essenziali di tale oggetto?
Ve ne sarei grato
Ciao!!


Sei molto  OT su questo news group. 
Comunque se guardi in un esempio che e' allegato al Builder troverai 
tutte le risposte alla tua domanda.
Fausto
Newsgroup: it.comp.lang.c++
Titolo: Inibire tasti funzione Windows

Esiste un modo (per es. creare un TSR) per impedire ad un utente di
utilizzare i tasti ALT-TAB o CTRL-ESC per abbandonare l'applicazione che
stà eseguendo; 
ho sentito parlare dell'uso degli Hook, ma non so esattamente cosa siano e
come utilizzarli!
Qualcuno mi darebbe una mano?????
Grazie!
-- Ivan --

 stà eseguendo; 
Che io sappia hai tre possibilita':
1- Intercetta WM_SYSCOMMAND
2- Intercetta WM_SYSKEYDOWN
3- Scrivi un hook di tastiera
La seconda puo' essere problematica (il messaggio lo riceve la finestra con 
il keyboard focus), la terza e' probabilmente overkill. La prima soluzione 
e' secondo me la piu' pulita, se funziona (mai provata).
Se il tuo problema e' quello di avere una stazione di lavoro dedicata 
(modalita' "kiosk"), ci sarebbe inoltre una quarta soluzione piu' pulita 
ancora, che e' quella di sostituire la shell di Windows con il tuo 
programma. Si tratta appena di editare un paio di righe nel system.ini.
Se il tuo programma non deve girare su una macchina dedicata, permettimi 
tuttavia di esprimere qualche dubbio sulla reale necessita' (o correttezza) 
di quello che vuoi fare: di solito gli utenti non apprezzano molto i 
programmi che li trattano o che li fanno sentire stupidi. 
Ciao,
Antonello
 
--
// ------------------------------------------------------------
// Antonello Salvatucci
// Software Developer, Technical Writer
// LEGO A/S SPU-Darwin, Kloevermarken 120, 7190 Billund DENMARK
// 
// antonello at digi. lego. com             
http://www.lego.com

Newsgroup: it.comp.lang.c++
Titolo: referenziare un non-static in una funzione statica

Salve,
ho bisogno di referenziare in una funzione statica (estensione di una
libreria C) un campo di classe non statico. Ovviamente il compilatore mi
da' errore perche' cerco di riferire un campo non statico in una
funzione statica: come rposso risolvere il problema?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 funzione statica: come rposso risolvere il problema?
Con uno static_cast?
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
 

 funzione statica: come rposso risolvere il problema?
passando alla funzione l'oggetto che contiene il membro dato in
questione oppure un puntatore al membro stesso (puntatore comune, non
puntatore a membro).
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: errore nel costruttore

ho un costrutto definito cosi':
article::article () {
	SMinit();
	....
}
il costruttore inizializza lo storage manager di INN e prosegue con
altre operazioni
il problema e' che SMinit() puo' ritornare un valore = 0, che significa
che c'e' stato qualche problema con l'inizializzazione
adesso questo errore viene ignorato, il costruttore termina
normalmente, ma al momento di utilizzare i metodi (che dipendono dallo
storage manager) ho risulati imprevedibili (ovvio)...
come potrei gestire la cosa?
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani

 storage manager) ho risulati imprevedibili (ovvio)...
Puoi semplicemente gestirla come eccezione
   if (!SMinit()) throw ...;
Ciao, Claudio.

 come potrei gestire la cosa?
Ci sono 2 soluzioni:
1)      Effettuare l'inizializzazione in due step:
- nel primo fai una inizializzazione semplice *che non possa fallire*:
insomma setti le variabili senza ( per esempio ) allocare memoria ( che
e' una cosa che puo' fallire ! ). 
- la seconda inizializzazione la fai in una comunissima funzione, che puo'
quindi restituire un valore ( eg: allocazione della memoria )
2)      Gestire la cosa con le eccezzioni

Newsgroup: it.comp.lang.c++
Titolo: VENDO manuale c++

http://cgi.ebay.it/ws/eBayISAPI.dll?ViewItem&item=5813392479&rd=1&sspagename=STRK%3AMESE%3AIT&rd=1

 
Per favore, non è considerato buon comportamento inserire offerte
commerciali su newsgroup di discussione, molti di noi lo considerano
alla stregua dell'ineducato indirizzo email che tu usi per identificarti.
Se intendi vendere e il sistema di eBay non ti basta, almeno posta su
newsgroup più adatti, come it.annunci.usato.qualcosa.
Grazie,
-- 
Matteo Settenvini
FSF Associated Member
Email : 
mat...@member.fsf.org
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d--(-) s+:- a-- C++ UL+++
P?>++ L+++>$ E+>+++ W+++ N++ o?
w--- O- M++ PS++ PE- Y+>++
PGP+++ t+ 5 X- R tv-- b+++ DI+
D++ G++ e h+ r-- y?
------END GEEK CODE BLOCK------
Newsgroup: it.comp.lang.c++
Titolo: Template e operatori

salve a tutti,
sto smanettando un po' con i template ... un paio di domande ...
1)
e' giusto inserire tutto il template (cioe' dichiarazioni e definizioni) in un
file .h da includere nel sorgente .cpp ??
2)
volendo usare una funzione di inserimento che inserisca ordinatamente i dati
nella lista ho definito questa funzione :
template<typename T> int SrtList<T>::CmpNoCase(const string &uno, \
	const string & due) const
{
        typename T::const_iterator u=uno.begin();
        typename T::const_iterator d=due.begin();
        while (u!=uno.end() && d!=due.end())
        {
                if (toupper(*u) != toupper(*d))
                        return (toupper(*u) < toupper(*d)) ? -1 : 1;
                u++;
                d++;
        }
        return(uno.size()==due.size()) ? 0 : (uno.size()<due.size()) ? -1:1;
}
richiamata da Add
template<typename T> void SrtList<T>::Add(const T &add)
{
        list<T>::iterator it=lst.begin();
        for (; it!=lst.end(); it++)
                if (CmpNoCase(add,*it) < 0)
                {
                        lst.insert(it,add);
                        return;
                }
        lst.push_back(add);
}
il problema e' che se creo una SrtList<int> la funzione non viene richiamata ..
e' meglio usare l'overloading dell'operatore '<' ?? e se si', bisogna sempre
definire l'overloading per ogni caso possibile, o c'e' una tecnica migliore ??
grazie anticipate ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 
Premesso che, se quel che ti serve è una lista costantemente ordinata, la 
cosa migliore è usare 'std::multiset', ti consiglierei di dichiarare 
'SrtList' in questo modo:
  template< class T, class LessT = std::less<T> >
  class  SrtList { 
   // ...
e implementare 'Add' in modo che utilizzi un'instanza di 'LessT', che avrai 
definito come membro dati della classe.
 
A questo punto, quando vorrai un criterio di confronto come quello di 
'CmpNoCase', dovrai soltanto definire una classe funzionale come questa:
     template< class T >
     struct CmpNoCase_less
     {  bool operator() ( const T& a, const T& b ) const
          {   // implementazione simile a 'CmpNoCase'...
          }
     };
e, ad esempio, instanziare il template come 
 
     SrtList< std::string, CmpNoCase_less<std::string> >
(come per altro faresti se volessi usare 'std::multiset').
Max

 Max
grazie per l'aiuto ...


 pratica con il C++ ...
Se vuoi fare pratica con il C++ devi usare gli algoritmi e i
contenitori della libreria standard.
Non ha senso cercare di fare pratica con il C++ evitandolo e girandoci
attorno, con il rischio di prendere cattive abitudini dure da mandare
via.
        Mauro

 Mauro
ciao e grazie ... giuro che da ora in poi vi "martellero'" solo con contenitori
& Company .
;-))

Newsgroup: it.comp.lang.c++
Titolo: Neofita chiede aiuto

Ciao a tutti,
sto da poco cercando di imparare a programmare in C++ e dopo aver fatto
programmini abbastanza semplici mi sto impegnando in qualcosa di più
difficile (e forse più utile). Tuttavia non avendo manuali (mi baso
sull'help del borland c++ per dos) ho  riscontrato il seguente problema:
 devo poter gestire lo spostamento su schermo tramite i tasti cursore :
come faccio? devo inserire il codice ASCII dello spostamento dato in
input?(quali sono i codici ASCII dello spostamento?)esistono già
libreria per gestirli?
Riagrazio chiunque abbia avuto la pazienza di leggere il messaggio e ,
se è in grado di aiutarmi, lo pregherei di mandarmi la risposta alla mia
e-mail poichè mi collegherò solo per poco (teleselezione) e non so se
potrò guardare i ng
RAISTLIN

Ciao,
puoi utilizzare le funzioni di libreria (i prototipi sono nell'header
file CONIO.H):
int wherex(void);
int wherey(void);
void gotoxy(int x, int y);
Le prime due restituiscono la posizione del cursore sullo schermo;
l'ultima, serve per impostarlo.
Alla pressione di uno dei tasti di direzione, puoi far rilevare la
posizione al tuo programma utilizzando le prime due funzioni:
x = wherex();
y = wherey();
e poi cambiare il valore per utilizzare l'ultima. Ad esempio, per
spostarsi a sinistra:
x = wherex();
y = wherey();
gotoxy(x-1,y);
Ricordati che quando premi i tasti di direzione, in realtà è come se
venissero emessi due caratteri, di cui il primo è nullo. Per quanto
riguarda il valore del secondo carattere, prova ad utilizzare un
programma del genere:
#include <iostream.h>
#define ESC 27
main()
{
    for (int i = getch(); i != ESC; i = getch())
        if (!i)    // ossia, è lo 0
            cout << getch() << endl;    // stampa il secondo carattere
emesso
    return 0;
}
Per uscire premi il tasto esc.
Ciao,
        Flavio.
--
Flavio Poletti
e-mail:   
pol...@writeme.com
web page: 
http://www.aspide.it/freeweb/poletti/
La libertà [americana] è lì, alla portata di tutti...
     ... come la chitarra ....
... ognuno suona come vuole ...
     ... e tutti suonano come vuole la libertà!
                                  (G. Gaber)
Newsgroup: it.comp.lang.c++
Titolo: valore di default e passaggio dei parametri

Salve a tutti,
nel passaggio dei parametri di una funzione se io volessi passare un
valore di default ad un oggetto , posso farlo?
Per esempio, tenendo conto questa segnatura
void funzione (Base b, 
                            Base* bp,
                            Derivata1 d=Derivata1() ,  //errore
                            Derivata1* dp=NULL);
(Base e Derivata1 sono classi dove Derivata1 eredita  da Base)
il compilatore mi da errore perche' il terzo argomento non puo' avere
quel valore di default.
E se io volessi dargli un valore di default? (ho provato anche per il
quarto argomento a dare un valore di default tipo new Derivata1() , ma
da errore anche in quel caso)
Devo dedurre che i tipi complessi come le classi, non possono avere
valori di default se passati come parametri?
Grazie

 da errore anche in quel caso)
Che cosa ti dice in particolare?
Magari Derivata1 non ha un costruttore di base e te lo chiede...
comunque e' strano che ti dia errore anche su new Derivata1()...
:? Non saprei, bisognerebbe vedere che errore ti da'.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

:? Non saprei, bisognerebbe vedere che errore ti da'.
uso il devc++ e l'errore che mi da e' il seguente:
invalid use of undefined type struct Derivata1
(anche per l'allocazione dinamica)
i costruttori sono presenti sia nella classe Base e in quella
derivata.
L'errore e' in compilazione per cui binding statico, pero' non capisco
manco io il perche'.
-----------------------------------------------------------------------------------------------------
ahhh svelato l'arcano.
avevo strutturato cosi' 
dichiarazione preventive delle classi
signature di quella funzione
definizione delle classi
Ebbene modificando cosi' 
definizione delle classi
signature della funzione
funziona.
Ergo, lui voleva avere le definizioni delle classi prima, non gli
bastavano le dichiarazioni preventive, proprio perche' (suppongo)
invocavo il costruttore instanziando un oggetto in default.
Grazie!!
Ciao

:? Non saprei, bisognerebbe vedere che errore ti da'.
adesso pero' mi si pone un nuovo problema.
supponendo che ho di default il terzo parametro ma non il quarto, la
chiamata a funzione come fa a sapere che il valore che gli passo e'
riferito al quarto parametro e non al terzo?
 funzione ( oggetto1 , &oggetto2 , &oggetto4);
come faccio cioe' a fargli capire che il terzo oggetto non e'
&oggetto4 ma deve prenderlo dal default?
rigrazie!

 supponendo che ho di default il terzo parametro ma non il quarto,
Non si puň. Se il terzo parametro č di default lo deve essere anche il
quarto. E se ometti il terzo nella chiamata allora devi omettere anche il
quarto.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
Newsgroup: it.comp.lang.c++
Titolo: Inizializzazione di un bitset con una stringa C

Ho provato ad inizializzare un bitset direttamente con una stringa C e sotto
VC++6 funziona, col mingw32 no.
Non so se il costruttore del tipo string da stringa C è explicit o no. Se
non lo fosse, sarebbe corretto il comportamento del VC++, vero?
--
Marco Iannaccone
marc...@tin.it
ICQ UIN: 18748121     MetalCoder
"What is real? How do you define real? If you're talking about your senses,
what you feel, taste,
smell, or see, then all you're talking about are electrical signals
interpreted by your brain."
        Morpheus - The Matrix

 non lo fosse, sarebbe corretto il comportamento del VC++, vero?
Non ho capito cosa hai fatto.
Codice ?
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

posso fare:
string val("101010101011" )
bitset<16> vec( val )
fin qui tutto normale.
col vc++6 posso fare anche
bitset<16> vec( "101010101011" )
perchč, da quanto ho capito, č usato il costruttore string( const char* )
per convertire la stringa C in oggetto string, accettato dal costruttore di
bitset.
In mingw32/gcc/DevC++4 perň non funziona...


 In mingw32/gcc/DevC++4 perň non funziona...
Che errore ti da?



E' un 'effetto collaterale' dei template.
Devi fare:
bitset<16> vec(std::string("101010101011"));
Saluti   Manlio Perillo

Newsgroup: it.comp.lang.c++
Titolo: [?] Valore di variabile non inizializzata

Salve a tutti
Sto approcciandi il C++ ed eseguendo il classico e banalissimo primo
programma ho notato che se creo una variabile ad esempio int x e poi ne
visualizzo il valore, quest'ultimo non č 0 (zero).
Mi sto sbagliando oppure č proprio cosě?
Ciao Fabio

Fabio wrote:

E' cosi' se la variabile e' locale a una funzione (ma non statica) o 
allocata dinamicamente. Se la variabile e' globale (1) e' azzerata.
Ciao,
Nicola
(1) Per globale intendo dichiarata a livello di file, di namespace, come 
membro dato statico di una classe o come variabile locale statica di una 
funzione.
Newsgroup: it.comp.lang.c++
Titolo: Socket & connessioni

Sto cercando di scrivere due programmi che dialogano tramite la classe
CSocket (uso MFC) utilizzando un timer. Dopo giorni di assiduo studio
pensavo di aver quasi capito come fare, ma le mie applicazioni, pur
funzionando, non comunicano. Chi mi saprebbe indicare dove sbaglio?
[E'meglio utilizzare un thread per gestire la connessione o un timer?]
sock é un oggetto CSocket globale ed é presente in entrambe le applicazioni.
Nell'applicazione server, in OnCreate eseguo:
    sock.Create(<#porta>, SOCK_STREAM, "127.0.0.1");
    sock.Listen();
in OnTimer ho:
    static int buff;
    static CSocketFile file(&sock);
    static CArchive arc(&file, CArchive::load, 4096, &buff);
    if (arc.IsBufferEmpty()) {
        buff = 1;
        arc << buff;
    }
Nell'applicazione client, in WM_CREATE eseguo:
    sock.Create();
    sock.Connect("127.0.0.1", <#porta>);
in OnTimer ho:
    static int buff;
    static CSocketFile file(&sock);
    static CArchive arc(&file, CArchive::load, 4096, &buff);
    if (!arc.IsBufferEmpty()) arc >> buff;

[E'meglio utilizzare un thread per gestire la connessione o un timer?]
I thread sono una soluzione piu` generale, ma ci sono anche
varie altre possibilita`, tipo usare le socket asincrone.
Alex

Io ho usato le socket asincrone ma ho avuto parecchi problemi.
Quindi sono passato al multi-threading senza pero' utilizzare MFC perche'
non lo digerisce bene. Ho interfacciato con delle mie classi le funzioni che
gestiscono le socket.
Ciao.
--
Antonio Donatiello
Newsgroup: it.comp.lang.c++
Titolo: Lettura scrittura su file

Salver a tutti. Il mio quesito per molti sarà banale, ma lo posto comunque.
Ho scritto un picolo programmino che legge un file e scrive il suo contenuto
in un secondo file.
#include <iostream>
#include <conio>
#include <fstream>
using namespace std;
fstream fLeggi, fScrivi;
int main()
{ char nomeFile[15], car;
  .........
  cin >> nomeFile;
  fLeggi.open("Primo.txt", ios::in);
  if(fLeggi.fail() || fLeggi.eof())
   { cout << "\nImpossibile leggere dal file";
     return 0;
   }
  fScrivi.open(nomeFile, ios::out);
  if(fScrivi.fail() || fScrivi.eof())
   { cout << "\nImpossibile scrivere sul file";
     return 0;
   }
  while(!fLeggi.eof())
   { fLeggi.get(car);
     cout << car;
     fScrivi.put(car);
     getch();
   }
  fScrivi.close();
  fScrivi.open(nomeFile, ios::in);
  cout << "\n File copiato.\nLeggo il file " << nomeFile << endl;
  while(!fScrivi.eof())
   { fScrivi.get(car);
     cout << car;
   }
  fLeggi.close();
  fScrivi.close();
  getch();
  return 0;
}
La mia domanda è: è possibile invece di chiudere in scrittura il secondo
file e riaprirlo in lettura, tornare direttamente al suo inizio ? Cioè
esiste una procedura che ti riporta direttamente all'inizio del file ?
Grazie per la risposta.
Simone

 esiste una procedura che ti riporta direttamente all'inizio del file ?
potresti usare gli istreram_iterator:
 ifstream in("risultati.txt");
typedef istream_iterator<char, ptrdiff_t> istream_iterator_char;
 istream_iterator_char iterOUT(out);      // Mi posiziono all'inizio del
file
 istream_iterator_char end;                     // Alias del marcatore di
fine file
--
Ciao.
Maurizio
P.S.: eliminare _NO_SPAM per rispodere in privato

 fine file
ops, mi sono sbagliato.
Volevo scrivere:


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

Qualcuno sa dove posso trovare le librerie di turbo c++ 3.0...
Grazie .......Tone

 Grazie .......Tone
In teoria sono incluse con i file di installazione. Se non ci sono
allora hai una versione bacata (oltre che non standard).
Ciao,
Cecco
Newsgroup: it.comp.lang.c++
Titolo: Differenze tra header H e HPP

Salve a tutti,
sto per la prima volta lavorando ad un effettiva astrazione del codice
del mio programma, sia per poter ottimizzarne il codice, sia per poter
portare il codice anche su altri OS.
Ad ogni modo mi e' venuto un dubbio: lavorando su Borland C++ Builder,
sui files cpp, vengono automaticamente generati file h.
Perň molte volte, ad esempio con VCL, BCB genera file hpp.
Ora, qual'e', di fatto, la differenza tra gli header h e gli header
hpp?
Ho cercato nelle FAQ, ma non c'č assolutemente nulla. hpp si ritrova
solo una volta su una domanda che non riguarda questo quesito.
Ho anche cercato sotto "File Header" del tutorial di Paolo Marotta
(che č in collegamento diretto sul desktop per la consultazione
veloce).
Ma nisba anche qui.
Il libro che avevo comprato non dice nulla, sto cercando di scaricare
l'ultima versione di Thinking in C++, ma credo che neppure lě troverň
risposta.
Dove devo cercare?
-- 
Ciao
DGP85
http://daps.cjb.net/

>Dove devo cercare?
Da nessuna parte, perché tra .h e .hpp la differenza è rappressentata dalle
sole lettere 'pp'. In realtà, la maggior parte dei compilatori non fa alcun
caso alle estensioni che non rappresentino unità compilabili (ad es.  .c o
.cpp ...). Quindi, l'uso di .h o .hpp (oppure .c o .cpp) è "ad libitum".
NB: Visual Studio vede .h come "C header file", mentre .hpp come "C++ header
file"
Ciao!!!
Newsgroup: it.comp.lang.c++
Titolo: Dichiarazioni funzioni friend

Compilando l'omonimo file .cpp il compilatore riporta il seguente errore:
ListaSemplice.h:26: error: ISO C++ forbids declaration of `ostream' with no
   type
ListaSemplice.h:26: error: `ostream' is neither function nor member
function;
   cannot be declared friend
ListaSemplice.h:26: error: parse error before `&' token
Di seguito e' riportato il codice del file header... qualcuno saprebbe
indicarmi dove sbaglio? a me sembra corretto :(
//File ListaSemplice.h
#ifndef LISTASEMPLICE_H
#define LISTASEMPLICE_H
template <class E>
struct NodoLista
{
        E info;
        NodoLista* next;
};
template <class F>
class ListaSemplice
//REalizzazione con side-effect senza condivisione
{
//      friend class IterListaSemplice<F>;
 public:
        ListaSemplice();
        ListaSemplice(const ListaSemplice<F>&);
        ~ListaSemplice();
        friend ostream& operator<<(ostream&, const ListaSemplice<F>&);
        ListaSemplice<F>& operator=(const ListaSemplice&);
 
        bool EstVuota();
        F Ritrova(int);
        int TrovaPos(int, F);
        int Lunghezza();
 
        void Inserisci(F, int);
        void Elimina(int);
        void EliminaElem(F, int);
 private:
        NodoLista<F>* inizio;
        static NodoLista<F>* Copia(NodoLista<F>*);
        static void CancellaSequenza(NodoLista<F>* p);
};
#endif

 Compilando l'omonimo file .cpp il compilatore riporta il seguente errore:
[SNIP]
quando si e' stanchi si scrivono certe menate.... scusate, era troppo banale
(e proprio per questo... :) )

...

In realta', se il tuo compilatore e' aderente allo standard, il
problema non e' banalissimo, anche dopo aver incluso <ostream> .
Perche' non spieghi come hai risolto?
Ciao,
Nicola

 Nicola
Ciao,
Gavri

Newsgroup: it.comp.lang.c++
Titolo: :( ma xche' i socket l'hanno con me??

Ragazzi sono disperato non riesco a programmare un socket.
Vorrei sapere se qualcuno di voi mi puo' mandare dei listati con spiegazioni
in e-mail.
grazie

 wrote in message
80f72c$l3s$1...@nslave2.tin.it...

No (per principio non spedisco aiuti in e-mail), ma se visiti
la URL 
http://www.wdj.com
 troverai fra i listati relativi agli
articoli di novembre 1999 (vol 10, n 11) quello dell'articolo
di Victor R. Volkman "WinSock: Simple and Portable
Client/Server", che mostra molto, ma molto bene come
usare le socket di BSD, e WinSock su Win32, per fare della
semplice comunicazione totalmente portatile "dappertutto".
Molto consigliato anche l'articolo, che spiega veramente
bene quel minimo di concetti elementari di cui non puoi fare
a meno, ma quello non credo sia in rete, dovresti trovare o
ordinare questo numero della rivista (che e` anche il
numero corrente al momento; forse lo trovi in grandi edicole
che tengano riviste straniere).  Nonostante il nome, il
"Windows Developer's Journal" non si rivolge solo a Windows,
bensi` pubblica anche, accanto ad articoli rilevanti solo
per l'ambiente Windows, altri di piu` ampia applicazione.
Alex
Newsgroup: it.comp.lang.c++
Titolo: costanti negli include

Negli include, quando e' necessario definire una costante in che modo e'
piu' appropiato farlo? normale, static o extern?
Con extern effettivamente risparmierei dei bytes nell'eseguibile finale
giusto?

 giusto?
No,visto che da qualche altra parte dovra' essere definita.
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

 >Negli include, quando e' necessario definire una costante in che modo e' 
piu' appropiato farlo?
Dentro una classe se appropriato (ad es. se il suo uso
e` localizzato negli ambiti in cui e` utilizzata la classe),
altrimenti comunque in un namespace.
 > normale, static o extern?
normalmente se si tratta di un tipo primitivo perche` non c'e`
(normalmente) allocazione di memoria[1].
Utilizzerei extern negli altri casi proprio per avere un unico oggetto[2].
[1] se la costante appartiene ad una classe presta attenzione alla differenza
(importante) tra "const" e "static const".
[2] Anche` qui` e` importante sottolineare che extern ha senso
(almeno essenzialmente) per una costante globale ad un namespace.
Paolo
--
Paolo Marotta
Duck Communication Entertainment s.r.l.
Largo Arenula, 11 - Roma
http://www.duckce.com
p.ma...@duckce.com
-- 
Posted from 
HA-server-a.cs.interbusiness.it
 [151.99.250.31] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 > No,visto che da qualche altra parte dovra' essere definita.
Purtroppo non e` cosi` semplice... se la costante e` una
istanza di classe, tipicamente ci sara` allocazione di
risorse; una definizione diretta nell'header significhera` quindi
avere una istanza della costante per ogni unita` di compilazione
con conseguente spreco di risorse.

Newsgroup: it.comp.lang.c++
Titolo: rep. (sorry) Dove posso scaricare C++?

Anche una versione semplificata, solo per imparare 4 cose
per l'esame di informatica.
Andrea

per l'esame di informatica.
Oggi avevo postato le faq, ma a quanto pare non sonoa arrivate.
Comunque consultale col message id
news:f22upsorgk0ppvmth...@4ax.com
Ciao.
-- 
DGP85
http://daps.cjb.net/
No HTML or Binaries with this address

 per l'esame di informatica.
Prendi il Borland C++ 5.5 su 
www.borland.com
 oppure il DJGPP su
www.delorie.com
.
EMG


www.delorie.com
.
Dai, per favore, non rendete inutile anche questo mio lavoro.
Gia' su it.comp.programmare.win32 non hanno gradito il mio tentativo
di preparare una FAQ, adesso sto postando la FAQ di it.comp.lang.c++
tutti i sabati qui e su it.faq...


 Dai, per favore, non rendete inutile anche questo mio lavoro.
Hai ragione avrei dovuto anche indirizzare l'amico verso le FAQ.
EMG

Grazie lo stesso!
Andrea

scusa trovato il sito
http://www.cs.princeton.edu/software/lcc/
ma forse guardando meglio i doc è un comp c puro, controlla bene.


Newsgroup: it.comp.lang.c++
Titolo: DCOM & SDK

E' possibile scrivere client o componenti COM utilizzando java SDK,
anzichč uno degli strumenti di VisualStudio?
Qualcuno l'ha fatto?E come č andata?
Conoscete un buon libro sull'argomento?
Accetto consigli!
Grazie.

...


Conoscete un buon libro sull'argomento?
Hmmm... su COM in Java, vediamo... Sessions ha un ottimo
libro "architetturale" sull'argomento, ma non mi sembra che
dia tutti i dettagli precisi... forse qualcuno dei nuovi della
Microsoft Press sul VS6.0, ma non li ho ancora visti.
Alex

bene, col nuovo SDK 3.01 e' ancora meglio (secondo me).
Il bello e' che se un certo matto porta a termine quello che promette,
presto avremo anche compatibilita' tra DCOM e Java puro (non MS Java SDK,
proprio Java puro! Unix compresi!).
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------


In che senso?



Nel senso che c'e' un matto :-) che sta creando un porting di DCOM per JVM,
per Java puro, quindi multipiattaforma. Se a qualcuno interessa posso
recuperare l'URL.


 recuperare l'URL.
Ti sarei grato se potessi recuperarlo, mi faresti una grande cortesia
spedendomelo.
Grazie.
Stefano.

spedendomelo.
Linar Ltd, UK. 
http://www.linar.com/jintegra/
. Al momento in fase di
sviluppo, ma una beta e' gia' disponibile.

Newsgroup: it.comp.lang.c++
Titolo: GUI:importante,rispondetemi, vi prego!

Salve, devo iniziare a lavorare per lo sviluppo di un software e vi prego di
darmi una dritta!
Io so programmare bene in c++, avendo frequentato i corsi universatari di
programmazione,ma   ho sempre lavorato in ambiente dos e non so niente di
GUI per c++!(solo per java ne so...)
Ora mi trovo a dover fare un programma e non sapere da dove iniziare...
mi trovo a disposizione sia il Visual C++ 6 che il CBuilder (non ricordo che
versione,ma volendo posso rimediare l'ultima...) e il problema è:
Quale usare???
Premetto che in passato ho dato più volte uno sguardo alle MFC ma non ci ho
capito niente, mentre mi è stato detto che col CBuilder le cose sono più
facili.Non vorrei inoltre avere problemi di compatibilità (perchè devo
vendere il programma).
Vi prego di essere decisi nel consigliarmi,dato che non ho il tempo di
provare entrambi :-)
Grazie infinite

Il Borland è tipo il Vb ed è portabile anche su linux con Kilyx 3.
Il VC++ è un po un casino
--
Ciao da Kleidemos
C++ Programmer
Visual C++ 6

grazie della risposta.
Un'altra domanda,esistono cose che il Borland non può fare e per cui sarebbe
meglio imparare l'altro?
Comunque visto che dici "è tipo il Vb" mi sa che mi hai già convinto :-)

 Il VC++ č un po un casino
Beh, siamo OT.
Ad ogni modo dire che il borland e' come il VB non e' certo un complimento
;-)
Mi trovo in disaccordo su cio' che dici del VC++ ma questa non e' sede per
parlarne.
Invito alod a contattarmi in privato se vuole avere le mie opinioni ma forse
la cosa migliore e' quella di rivolgerse ad un newsgroup tipo
it.comp.programmare.win32. Putroppo io non riesco a leggerlo da qua ma
troverai molto gente con piu' esperienza di me che ti dara' il suo parere.
Tommy

Per tipo Vb intendevo che + RAD come Vb nn che fa schifo comeVB

Newsgroup: it.comp.lang.c++
Titolo: Passare a DirectX6 (BCB)

Vorrei aggiornare un esempio dell'uso del DirectDraw fornito con il Borland
C++ 4 alle DirectX 6. Ho sostituito il file ddraw.h, ho aggiornato i vari
tipi e aggiunto il codice :
ddrval = lpDDold->QueryInterface(IID_IDirectDraw4,
        (LPVOID *)&lpDD);
Il linker mi da' però un errore :
Unresolved external '_IID_IDirectDraw4' referenced from
C:\PROGRAMMI\BORLAND\CBUILDER4\EXAMPLES\DDRAW\DDRAW1A\MAIN.OBJ.
Perchè e cosa devo fare?
Grazie.

...


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

Ho un problema con dei threads nel senso che ho acuni thread concorrenti su
una FIFO. Succede che uno dei thread incaricati di prelevare i dati dalla
FIFO è troppo lento: nello scope del workThread ho un loop all'interno del
quale faccio un polling sulla FIFO e ho una Sleep(1). Se cambio il tempo di
attesa in Sleep(0) tutto funziona a meraviglia ma la CPU è impegnata al
100%. Ho provato a cambiare anche le priorità del Thread ma senza risultati.
Vorrei che il Thread funzionasse come si deve senza arrestare
l'appliocazione (uso della CPU al 100%).
Grazie e saluti a tutti.
Chri.

chri wrote:

usa mutex o un semaforo sulla fifo cosi' che puoi mandare in wait il 
thread sull'object ed essere risvegliato dallo sceduler del tuo SO senza 
dover fare polling e CPU hog.
ciao
Newsgroup: it.comp.lang.c++
Titolo: Delay, che unita di misura!???!??

Come da oggetto, che unita di misura esprime il comando Delay, sono
millisecondi, secondi o cosa? ad esempio l'istruzione Delay 5, fa scorrere 5
millisecondi o 5 decimi di secondo, o che?

millisecondi
(Non so se nei delay troppo brevi lo rispetti)

 writes:

Stranissimo: il mio PC non conosce alcuna procedura chiamata "Delay":
MLO 46 $ man Delay
No manual entry for Delay
MLO 47 $ man -k delay
delay: nothing appropriate
MLO 48 $
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 ha scritto nel messaggio
news:Frth8.12445$uN5.3...@twister1.libero.it...

Cos'è Delay? Sei sicuro di non aver sbagliato newsgroup? Di certo il C++ non
definisce nessun "comando" Delay...
Marco

Come da oggetto, che unita di misura esprime il comando Delay, 
Credo che siano "elefanti".
Almeno la Delay che e' definita nel mio programma di
gestione dello zoo, accetta il numero di elefanti presenti
nel sistema, da mettere in coda per il pastone.
Purtroppo il tempo che intercorre tra la preparazione di un
pastone e l'altro e' abbastanza lungo.
Fa riflettere tutto questo, su quanto sia difficile gestire
uno zoo.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

Newsgroup: it.comp.lang.c++
Titolo: Esordiente totale

Buongiorno a tutti, mi chiamo Alessandro e sono un programmatore dilettante
Finora ho imparato il visual basic e ora vorrei imparare i fondamenti del
visual c++.
Dove posso trovare un sito che mi "erudisca" in materia?
grazie
luc...@tin.it

prova a il sito 
www.programmazione.it
Oppure 
www.manuali.net
 per un qualche tutorial

Serie di Links in arrivo per te:
www.programmazione.it
		e chi non ci andrebbe?
www.BruceEckel.com
		per scaricarsi Thinking in C++
www.developer.com
		Developer.Com
e altri che ora non ricordo ;)
Se volete posto un elenco completo di tutti i miei Bookmarks sulla
programmazione.
che ne dite?
Ciao.
--
Diego "DGP85" Pettenņ
daps...@nightmail.com
Newsgroup: it.comp.lang.c++
Titolo: Alex Martelli

Ciao, anzi buonasera, visti gli orari! Allora, io il programmino l'ho
scritto con l'edit del DOS. Nel libro avevo già trovato l'avvertenza conto i
vari programmi per scrivere (word ecc.) quindi il testo dovrebbe essere ok,
inoltre per alcuni caratteri, ({}) tipo le parentesi graffe, ho dovuto
scoprire il codice ASCII (mi ci sono voluti altri due giorni, praticamente è
più di un mese che ho questo libro!! Se non avessi scoperto questo news
credo che non l'avrei finito prima di un secolo). Il file l'ho chiamato
"peso",   .c ce lo ho messo perchè mi sembrava di aver capito dalle
istruzioni in readme che bisognava mettercelo. Poi, come ti ho già detto ho
provato anche senza ma i risultati cambiavano di poco. Il file l'ho salvato
nell'HD c: (ho due HD), che è lo stesso HD dove ho messo DJGPP.  Parlando
con te ho avuto un'illuminazione, non sarà che quel  c  che ho visto nelle
istruzioni si riferiva alla directory  in cui il mio file stà? Adesso vado a
vedere......No, l'illuminazione era sbagliata. Non va. Però ho controllato
il mio file quando lo apro con l'edit del DOS, in alto, in mezzo, Dove si
trova quello che credo si chiami "percorso", c'è scritto c:\peso, ciò sta ha
significare chei il file è in   c. Non dovrò mica salvarlo dentro la
cartella di gcc? Ok, aspetto domani sera. Ultima cosa, quando compilo,
controllo anche "staticamente "gli errori, o li vedrò solo quando cercherò
di far funzionare il programma?  Non era l'ultima, era la penultima: devo
chiederti se è proprio gravissimo che io non riesca a fare neanche un
piccolo conto con i numeri esadecimali. Ho capito cosa significa che sono a
base 16, ho capito che aiutano a rendere le istruzioni più corte, ma per il
resto non riesco proprio neanche a sommarli. Ciò mi impedirà di imparare a
programmare bene?  O.K. anche questa sera ti ho lasciato un papiro da
leggere, grazie per l'aiuto.
Andrea


Newsgroup: it.comp.lang.c++
Titolo: Perchè non funziona?

Sapete dirmi dov'č l'errore in questo sorgente?
#include <iostream>;
using namespace std;
class myclass {
 public :
 static int y;
 void writenum (int z) {
   y = z;
  }
 int readnum () {
  return y;
 }
};
myclass classx, classy;
 int main (int, char* []) {
  classx.writenum (8);
  cout <<"classx::getnum vale = " << classx.readnum() << endl;
  cout <<"classy::getnum vale = " << classy.readnum() << endl;
  return 0;
 }
L'errore č :
Unresolved external 'myclass::y' referenced from D:\DATI\CPP\STATIC.OBJ
Inoltre volevo sapere se in C++ le librerie sono rappresentate dai file
header, se no da cosa?
Grazie
--
Posted from [195.223.215.6] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
myclass::y è stato *dichiarato* (con la dichiarazione della classe), ma
non è stato *definito*.
Aggiungi 
  myclass::int	y = 0;
in un qualsiasi file .cpp.
Max




Ho messo int myclass::y;
sotto static int y;
e mi dice che myclass::y è stata dichiarata più volte.


header, se no da cosa?
I file di header definiscono la *interfaccia* di utilizzo
di una libreria. Normalmente la libreria e' disponibile
come le normali librerie scritte con altri linguaggi (es.
in forma di file .lib) e deve essere aggiunta nella fase
di link del programma. Un caso limite potrebbe essere una
libreria interamente contenuta in file .h (ad esempio una
libreria composta esclusivamente di funzioni inline).
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Grazie ho risolto il problema.
Ma se invece di dichiarare int myclass::y fouri dalla classe dichiaravo int
y dentro la classe era lo stesso?
Inoltre volevo sapere come si include un cpp dentro un'altro cpp?
Grazie


 
#include "pippopippo.cpp"
Ma nel tuo caso non hai bisogno di fare una cosa del genere: basta che 
tu aggiunga la riga 
myclass::int  y = 0;
all'inizio del file myclass.cpp che implementa la classe myclass


myclass::int  y = 0;
Non è che volevi scrivere  int myclass::y = 0;    ???
Ciao


prima dell'istanzazione degli oggetti di tipo class a.
Anche qui.
Grazie.


 Ciao

Newsgroup: it.comp.lang.c++
Titolo: Manuale più completo

Dovendo comprare e spendere soldi cosa conviene?
Lo Stroustrup?


Dipende dal livello della tua preparazione in C++.
Io non lo comprerei come primo manuale e nemmeno come secondo.
Piu' che altro e' un manuale che ti fa da riferimento quando sei gia'
abbastanza esperto e devi consultare concetti piuttosto complessi.
Come primi manuali prenderei :
- Lippman - Lajoie "C++ primers"
- Bruce Eckel "Thinking in C++" vol 1 e vol 2, scaricabili liberamente dal
web
Dopo passerei alla 'trilogia' di  Scott Meyers:
- "Effective C++", "More effective C++" e "Effective STL"
o al duo di Sutter
- "Exceptional C++" e "More exceptional C++"
o al buon
- "C++ faq's" di autori vari
Solo a questo punto sarebbe bene prendere il bibbione di Stroustrup, che
altrimenti rischierebbe di farti scoraggiare.
Maurus


L'autore e' Jesse Liberty
Non l'ho mai letto.
Ma se vai al sito dell'Accu, ne fanno una recensione:
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_l&file=cp002023a
Non c'e' comunque scritto se e' o non e' raccomandato.
L'importante e' non cadere nel facile tranello di studiare su libri di
Schildt, tutti o quasi non raccomandati.
Maurus

 com'è c++ tutto e oltre di apogeo ?
Io mi sono trovato benissimo
sia come metodica che come esempi