pourquoi ne faut til pas mettre le .h dans qd on inclut.... - C++ - Programmation
Marsh Posté le 04-08-2003 à 19:51:54
par ce que les fichiers d'en-tete de la derniere norme (C++98, ç dat quand même), n'ont pas d'extension. rien de magique. le vieux .h sont gardés pour compatibilité avec les ivuex programmes, mais les compilos vont être de plus en plus enclin à gueuler contre ça
Marsh Posté le 04-08-2003 à 20:46:48
par exemple dans mon prog qd je passe de <iostream.h> a <iostream> jai des erreurs que javais pas avant : 
 
 
| Code : 
 | 
Marsh Posté le 04-08-2003 à 20:50:03
ben ca ete fait 
 
ou alors c encore une des fourberies de visual c
Marsh Posté le 04-08-2003 à 20:52:16
ta deuxiemme erreur vient surement du fait que tes membres sont declarés en private non? 
 
et le premiere vient surement du fait que tu as declaré iostream au lieu de iostream.h  ![[:sinclaire] [:sinclaire]](https://forum-images.hardware.fr/images/perso/sinclaire.gif)
Marsh Posté le 04-08-2003 à 20:54:45
ou c du private mais la fonction est en friend donc c pas la le probleme 
 
sinon si je fait passer le iostream en .h a ce moment c le string qui va plus 
 
| Code : 
 | 
Marsh Posté le 04-08-2003 à 21:05:58
Se changement correspond à un changement de sémantique ou à un simple renomage des fichiers d'entête (style on passerai de "tu inclus le fichier machin.h texto" à "je vais utiliser le contenu de la bibliothèque machin, tu te démerdes pour que ça soit dispo pour le compilo" ) ? 
Marsh Posté le 04-08-2003 à 21:13:08
enfait jviens de refaire quelques classes de base pour me rexercer un peu en c++ (rien de super complique juste de laffichage de valeur , constructeur de copie , bref des trucs tout simple)  
jusque la tout va bien 
 
puis qd jai eu fini jai remarque que  string text = "xxxx";cout << text; ne passait pas alors j'ai iostream.h en iostream , j'ai rajoute using namespace std; puis jai compile 
 
le  cout du string marche mais dans une des classes y veut plus accedde au donnee privees ainsi que le ambigous
Marsh Posté le 04-08-2003 à 21:14:11
c'est l'introduction/validation du concept de namespace (référenciel lexical) qui est porté par ce nouveau nommage. les namespace sont un outil très intéressant du C++
Marsh Posté le 04-08-2003 à 21:16:12
sinon le using namespace on peut le faire juste apres les include avant le main c ca?
Marsh Posté le 04-08-2003 à 21:17:09
oui. je t'invite à te documenter sur les directives using (et pour les namespaces, et pour les class types
Marsh Posté le 04-08-2003 à 21:21:40
on trouve de tout avec google... 
 
 
http://support.microsoft.com/defau [...] bContent=1
Marsh Posté le 04-08-2003 à 21:22:12
| Taz a écrit : c'est l'introduction/validation du concept de namespace (référenciel lexical) qui est porté par ce nouveau nommage. les namespace sont un outil très intéressant du C++  | 
pourquoi un simple "using" ne suffit pas alors ? 
 
pour séparer "j'utilise le bordel qui est dans un namespace" de "je rentre dans le namespace" ? 
 
Je capte pas, car #include <std> n'a pas de sens, pas plus que using namespace vector.
Marsh Posté le 04-08-2003 à 21:22:29
c des king chez crosoft ya pas a dire 
 
deja que jai parfois du mal en c++ alors si le compilo s'y met
Marsh Posté le 04-08-2003 à 21:23:22
| red faction a écrit : c des king chez crosoft ya pas a dire  | 
des fois, c'est vraiment la faut du marteau
Marsh Posté le 04-08-2003 à 21:38:21
| nraynaud a écrit : pourquoi un simple "using" ne suffit pas alors ?  | 
 
 
"using namespace lambda;" c'est pour rendre accessible dans le scope local toutes les définitions du namespace lambda. 
 
ça s'oppose à "using lambda::multi_proctor" qui sert à rendre accessible seulement la définition multi_proctor du namespace lambda. 
 
Pour ma part, je pense que le "namespace" dans "using namespace" rends compte de cette différence de manière claire.
Marsh Posté le 04-08-2003 à 19:42:23
un header pour la stl
genre #include <vector>
????