Newsgroup: it.comp.lang.c++
Titolo: Guida completa C++ 2nda edizione di Herbert Schildt

Salve.. sono in possesso di questo libro e siccome alcune persone non lo
reputano un buon libro, mi č venuto un dubbio..
 pag. 311, c'č un esempio:
class C2;
class C1 {
    int status;
public:
    void set_status(int state);
    int idle(C2 b);
};
class C2 {
    int status;
public:
    void set_status(int state);
    friend int C1::idle(C2 b);
};
Questa č la parte interessata... L'esempio non me lo compila (VC++ 6.0), ma
sbaglio o questo č un errore dell'autore? Voglio dire.. se C1 non conosce la
grandezza di C2, č improbabile che io riesca ad avere un oggetto di tale
classe in C1 no? Spero abbiate capito il problema. Ringrazio tutti per le
eventuali risposta. Bye

 eventuali risposta. Bye
In effetti c'è un'errore perchè la classe C2 è solo dichiarata a quel punto
di codice. Se una classe è solo dichiarata, puoi avere solo puntatori o
riferimenti a quella classe, quindi il codice è sbagliato.
Infatti se sostituisci i punti come:
C2 b;
con
C2* b;
oppure
C2& b;
Non hai problemi di compilazione.
Una domanda: perchè hai comprato quel libro nonostante sapessi che molte
persone non lo reputano un buon libro? (o forse non lo sapevi ancora al
momento dell'acquisto?)
Un'altra domanda: perchè non lo metti da parte (magari lo vendi a qualcuno
"poco informato" :) e compri
C++ - Corso di programmazione 3ª edizione di Stanley B. Lippman? :D
Ciao!
--
Luigi

 Luigi
Ciao!

eventuali risposta. Bye
Quell'esempio a me lo compila. Non riuscirebbe a compilare la
*definizione* di C1::idle prima di aver visto la dichiarazione
della classe C2, ma la semplice *dichiarazione* del metodo non
crea problemi con VC++ 6.0.
Dove sarebbe l'oggetto di classe C2 in C1 ? Hai forse dimenticato
qualche pezzo nel ricopiare ?
Andrea

 che anche C++ Primer 3rd edition è un buon libro.
Eh eh, è lo stesso che ti ho consigliato io, solo che è in inglese (ed è
l'originale, quindi se non hai problemi con l'inglese prendi il Primer)
Ciao.
--
Luigi

 ha scritto nel messaggio
news:3d5f5990...@news.tin.it...

Guarda, l'esempio è quello che trovi in quella pagina. Non me lo compila
proprio dandomi un errore del genere:
int C1::idle uses undefined class C2
Non so come mai a te funziona.. fatto sta che devo cambiar libro e comprare
quello suggeritomi dal fratello di Mario :P Bye

fratello di Mario :P Bye
Sul fatto di mollare Schildt e prendere un testo
migliore posso solo concordare.
Andrea

 Andrea
In effetti in quell'esempio l'errore avviene nella definizione di
C1::idle(C2 b). Scusa, credo di essermi confuso. Il fatto č che avevo un
simile problema dichiarando un oggetto di C2 nella classe C1.. e in quel
caso l'errore lo dava nella definizione della classe. Grazie cmq delle
risposte. Bye

oddio, non dite cosě! davvero il testo di schildt fa cosě schifo? io
ho anche il testo di Bjarne Stroustrup  "il linguaggio c++ - seconda
ed." e mi sembra molto valido, oltre alla guida completa al visual c++
6 della apogeo di chapman e "c++" di paul snaith... che faccio? quella
della apogeo veramente mi sembra oscena, su schildt non mi pronuncio,
ma le altre non mi sembrano male (almeno per me newbie): consigli?

 ed." e mi sembra molto valido
e vorrei pure vedere, l'ha inventato lui il c++!!!