Newsgroup: it.comp.lang.c++
Titolo: C++1 e C++2 ?

Salve a tutti.
sogente C++1
#include <iostream.h>
sorgente C++2
#include <iostream>
using namespace std;
Sto studiando due libri diversi, uno è stato scritto da Stroustrup
quello per C++2"corso completo" e l'altro che ho acquistato da poco è
stato scritto da Deitel C++1"fondamenti dello C++".
Non capisco un accidenti perchè i due testi parlano dello C++ ma copme
inizio cambiano la forma degli header?
Si puo' spiegare sta situazione.....
Cordiali saluti

 using namespace std;
Questo serve a rendere il codice piu' semplice da leggere per chi sta 
ancora iniziando, ma non andrebbe usato nei programmi veri, dato rende 
disponibile tutto il contenuto del namespace std senza bisogno dei 
qualificatori, e questo potrebbe causare problemi.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 qualificatori, e questo potrebbe causare problemi.
Praticamente: quando inizierai ad avere problemi toglilo :-)
Statisticamente è probabile che tu cambi linguaggio o abbandoni la 
programmazione PRIMA di avere problemi.
--- bye 

 
Non ho capito cosa intendi..


 Non ho capito cosa intendi..
Dunque... Vediamo... Io non ho mai avuto problemi di sovrapposizioni di 
namespace... e in generale direi che i problemi di namespace collision sono 
decentemente rari. Lui sta iniziando a studiare il C++. Le probabilità che 
arrivi al punto in cui gli servirà il tuo suggerimento non sono favorevoli 
(statisticamente c'è più gente che studia il C++ e poi lo abbandona per 
qualche ragione di quella che resta in C++). Quindi, se diciamo che il 10% 
dei programmatori ha problemi di namespace (e siamo generosi) e il 10% di 
quelli che iniziano a studiare il C++ lo portano avanti "nella vita" (se 
contiamo gli studenti universitari che lo studiano per un esame la 
percentuale è di sicuro più bassa) le probabilità che lui nella vita abbia 
problemi di namespace collision sono l'1% (in realtà molte di meno) :-)
Ciò non toglie nulla alla bontà del suggerimento... Semplicemente 
realisticamente è inutile cercare di risolvere un problema che 
statisticamente lui non avrà (e che se anche dovesse avere è probabile che 
gli venga segnalato dal compilatore C++) 

MaxMax ha scritto:

Ah, ok. In effetti quello che ho detto mi arriva da quello che ho 
studiato-lurkato, dato che non ho ancora avuto il tempo di dedicarmi a 
qualcosa di piu' complesso degli esercizi del libro che sto studiando.


robric wrote:
 > Salve a tutti.
 > sogente C++1
 > #include <iostream.h>
 > sorgente C++2
 > #include <iostream>
 > using namespace std;
 > Sto studiando due libri diversi, uno è stato scritto da
 > Stroustrup quello per C++2"corso completo" e l'altro che ho
 > acquistato da poco è stato scritto da Deitel C++1"fondamenti
 > dello C++".
 > Non capisco un accidenti perchè i due testi parlano dello C++
 > ma copme inizio cambiano la forma degli header?
Dipende della data dal libro. Il linguaggio hà cambiato. Quando
hò incominciato io, valeva solo C++1. Poì, è stato un tempo dove
aveva bisogna conoscere gli due, seguendo il compilatore. Oggi,
al meno d'aver a fare con un compilatore disuso, bisogna fare:
     #include <ostream>
per gli uschite, e
     #include <istream>
per gli entrate.
-- 
James Kanze                                 mailto: 
james...@free.fr
Conseils en informatique orientée objet/
                        Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France 
+33 (0)1 30 23 00 34

 
Ma se voglio usare entrambi non posso usare semplicemente <iostream>?


Salve a tutti.
Io sto usando dal lontano 2003 questo compilatore e non ho mai avuto
problemi con i namespace:
DevCpp 4.9.9.1
saluti


Sostituisci nel tuo ragionamento "namespace collision" con "cinture di
sicurezza". Hai gia' fatto testamento?
Ciao,
Nicola

 <iostream>?
Non. <iostream> dichiara (ma non definische) cout, cin etc. Non
dichiara neanche gli operatori << o >>.
La norma permette a un'implementazioni di inchiudere altre
header in <iostream>, e cerce inchiudono <istream> e <ostream>,
ma dipende dall'implementazioni.
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34