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