Newsgroup: it.comp.lang.c++
Titolo: schildt è una bestia?

Sono quasi a metà de "La guida completa al c++" ed 1998 di Schildt
quando da una brevissima ricerca su deja scopro che questo autore viene
considerato un pessimo esempio di programmazione e che è tutt'altro che
un esperto per quanto riguarda tecniche di programmazione
medio/avanzato.
Essendo un principiante in c++ (benchè mooolti anni fa avevo letto e
programmato qualcosa in c) non riesco bene a cogliere queste mancanze
nel libro di schildt, a parte qualche codice d'esempio clamorosamente
sbagliato (magari dovuto alla traduzione).
Sembrerebbe organizzato bene ed esauriente al punto giusto, senza
scendere in particolari magari difficili da capire per un neofita, ma
non ho ancora affrontato argomenti particolarmente complessi.
La domanda è : ha senso che io continui nella lettura di questo libro o
sarebbe meglio comprarmi un libro di lippman o di un autore piu'
quotato senza perdere tempo a finirmi prima questo?
Grazie
Franz

Guarda tu stesso su:
http://www.lysator.liu.se/c/schildt.html
Ciao
--
Alessandro Monti

 quotato senza perdere tempo a finirmi prima questo?
Senza dubbio questa seconda.
EMG

quotato senza perdere tempo a finirmi prima questo?
Ha senso se non dai peso ai soldoni che hai speso per il testo e se ci
tieni ad imparare bene il linguaggio ! ;)
In ogni caso ti conviene scaricare Thinking in C++ di Bruce Eckel, da
www.BruceEckel.com
.
In questo periodo il testo e' in fase di riscrittura ed e' diviso in
due volumi.
La versione 6 e' gia' disponibile e il primo volume e' disponibile
presso il sito per essere scaricato.
La novita' e' che si puo' scaricare anche in HTML.
--
Andrea Laforgia 
andrea_...@bigfoot.com

Uhm...ho controllato l'url che mi hai proposto e l'ho trovato
interessante:)
Penso di accantonare il libro di schildt, benchè molte delle critiche
mosse a schildt in quella pagina sono piuttosto passabili al mio attuale
livello di conoscenza ed anche al livello di conoscenza che mi aspettavo
di raggiungere dopo la lettura di quel maledetto libro anche prima di
venire a conoscenza delle pecche dell'autore.
Al punto 6.3 viene menzionato il fenomeno dell'aliasing, che pero' non
ho proprio capito..chi me lo spiega pls?
Ho letto qualche pezzo dell'ultima edizione "thinking in c++", scaricata
dal sito di eckel, e mi sembra fatto bene.
L'unico problema è che non riesco a studiare per troppo tempo leggendo
dal monitor, ho bisogno del cartaceo e la prima versione di thinking è
un po' troppo datata.. (1995 o sbaglio?)
Ho bisogno di un libro che tratti sia le basi sia gli argomenti piu'
complessi della programmazione in c++, per poi buttarmi su un testo sul
c++ builder conoscendo già il c++ a livelli buoni.
Il "primer" di Lippman è soltanto ed esclusivamente per neofiti o tratta
anche di argomenti avanzati in modo approfondito?
Cosa mi consigliate di comprare ? (lo sò che avrete sentito questa
domanda centinaia di volte, ma questa volta vorrei comprare un libro
adatto, abbiate pazienza...)
grazie e ciao!
Franz
Alessandro Monti ha scritto:


 anche di argomenti avanzati in modo approfondito?
"Livelli buoni" e` un'equa valutazione.  Non direi "avanzati".
Per vari argomenti avanzati ti convengono: Inside the C++ Object
Model, di Lippman; i testi di Meyers (ma se li vuoi su carta, dovrai
comprare una buona stampante:-); il testo di Lakos ("Large Scale
C++ Programming" -- attento che intende _veramente_ GRANDE
scala...!); "Design Patterns" (Gamma et al), non strettamente
sul linguaggio C++ ma importante; "Multi-paradigm DESIGN for
C++" di Coplien; ...
Alex

 produrra` risultati che possono essere inattesi.
Ti ringrazio per la spiegazione
non ho capito il perchč puo' produrre risultati inattesi (solo per n>=2 ?), ma
era giusto un'idea generale del problema quello che chiedevo thx
ciao
Franz

quotato senza perdere tempo a finirmi prima questo?
In alternativa puoi scaricarti l'ultimo lavoro di bruce eckel
(
www.bruceeckel.com
) che e` molto valido.
Secondariamente puoi fare un confronto di cio` che hai appreso
con quanto presente sul mio tutorial. Non che esso sia perfetto
o completo (e manco paragonabile ad un buon libro), ma essendo in
italiano ti consente una piu` rapida lettura e individuazione di 
eventuali discrepanze.
Il tutorial lo trovi su 
www.programmazione.it
Paolo
-----------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------

Cosa mi consigliate di comprare ?
Tra poche settimane dovrebbe uscire il primo volume del libro
di Eckel, avendo solo la 2a edizione dello Stroustrupt penso di
aggiornare la mia biblioteca personale proprio con "Thinking
in C++" che puo` tornarmi comodo per molte altri aspetti.





 non ho capito il perchč puo' produrre risultati inattesi (solo per n>=2 ?), ma
Hmmm, temo che la chiamata che ho specificato produrra` piu`
o meno quello che uno si aspetta -- sara` invece la chiamata
"sommali(10, &x[4], &x[2])" a potere invece "stupire".  Per
riferimento -- suppongo che quello che si aspettano l'autore e
il "lettore" dalla sommali sia piu` o meno lo stesso che:
     void sommali2(int n, int* a, const int* b) {
        std::vector<int> c(b, b+n);
        for(int i=0; i<n; ++i)
            a[i] += c[i];
     }
visto che in effetti sommali e sommali2 sono equivalenti in
tutti i casi in cui non c'e` aliasing.
Alex

 con "nomi" diversi. L'aliasing e` proprio questo fenomeno ed
Anche in uno senza puntatori ne` reference, come i piu`
vecchi Cobol o Fortran; gli array, infatti, danno gli stessi
problemi.  Si consideri ad esempio, in Fortran '66...:
    COMMON REAL PIPPO(100)
    ...
    CALL PLUTO(6, PIPPO(10), PIPPO(11))
    ...
    SUBROUTINE PLUTO(N,AA, BB)
    INTEGER N
    REAL AA(N), BB(N)
Entro "PLUTO", AA(2), BB(1), e PIPPO(11) sono tutte in alias
fra loro (il programma e` errato -- non che il compilatore sia
tenuto a diagnosticarlo! -- se e solo se la subroutine _scrive_
qualcosa in un qualsiasi punto della memoria per cui essa
vede piu` di un "sinonimo" ovvero "alias").
Se quello che intendi per "linguaggio con puntatori e/o
reference" include i Fortran e i Cobol di 30-40 anni fa,
allora non so bene quale sarebbe un linguaggio _senza_
puntatori e/o reference.
Alex

vecchi Cobol o Fortran;
Sono stato un po' impreciso, in effetti ho parlato esplicitamente
di puntatori e reference solo perche` in questo caso la situazione
e` facilmente intuibile.
