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>
????