Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6154 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  pourquoi ne faut til pas mettre le .h dans qd on inclut....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pourquoi ne faut til pas mettre le .h dans qd on inclut....

n°477414
red factio​n
Posté le 04-08-2003 à 19:42:23  profilanswer
 

un header pour la stl
genre #include <vector>
 
????

mood
Publicité
Posté le 04-08-2003 à 19:42:23  profilanswer
 

n°477426
Taz
bisounours-codeur
Posté le 04-08-2003 à 19:51:54  profilanswer
 

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

n°477484
red factio​n
Posté le 04-08-2003 à 20:46:48  profilanswer
 

par exemple dans mon prog qd je passe de <iostream.h> a <iostream> jai des erreurs que javais pas avant :
 
 

Code :
  1. cout << "personne 1 > " << p1 << endl;
  2. cout << "personne 2 > " << p2 << endl;
  3. cout << "personne 3 > " << *p3 << endl;
  4. ->  operator << is ambigous
  5. ostream& operator <<(ostream& out,const personne& p1){
  6. out << "Nom : " << p1.nom << endl;
  7.         out << "Prenom : " << p1.prenom << endl;
  8. out << "Age : " << p1.age << endl;
  9. out << "Special : " << p1.special << endl;
  10. return out;
  11. }
  12. -> cannot access private member nom , prenom, age,...


Message édité par red faction le 04-08-2003 à 20:47:09
n°477485
Taz
bisounours-codeur
Posté le 04-08-2003 à 20:47:35  profilanswer
 

using namespace std;

n°477488
red factio​n
Posté le 04-08-2003 à 20:50:03  profilanswer
 

ben ca ete fait
 
ou alors c encore une des fourberies de visual c

n°477489
polo021
Posté le 04-08-2003 à 20:52:16  profilanswer
 

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]


Message édité par polo021 le 04-08-2003 à 20:52:41
n°477491
red factio​n
Posté le 04-08-2003 à 20:54:45  profilanswer
 

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 :
  1. string text = "hello";
  2. cout <<  text << endl;
  3. -> cannot convert text from ....

n°477492
Taz
bisounours-codeur
Posté le 04-08-2003 à 20:57:51  profilanswer
 

fourberie de VC++...

n°477498
nraynaud
lol
Posté le 04-08-2003 à 21:05:58  profilanswer
 

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


---------------
trainoo.com, c'est fini
n°477505
red factio​n
Posté le 04-08-2003 à 21:13:08  profilanswer
 

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


Message édité par red faction le 04-08-2003 à 21:13:41
mood
Publicité
Posté le 04-08-2003 à 21:13:08  profilanswer
 

n°477508
Taz
bisounours-codeur
Posté le 04-08-2003 à 21:14:11  profilanswer
 

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

n°477513
red factio​n
Posté le 04-08-2003 à 21:16:12  profilanswer
 

sinon le using namespace on peut le faire juste apres les include avant le main c ca?

n°477514
Taz
bisounours-codeur
Posté le 04-08-2003 à 21:17:09  profilanswer
 

oui. je t'invite à te documenter sur les directives using (et pour les namespaces, et pour les class types

n°477519
red factio​n
Posté le 04-08-2003 à 21:21:40  profilanswer
 

on trouve de tout avec google...
 
 
http://support.microsoft.com/defau [...] bContent=1

n°477520
nraynaud
lol
Posté le 04-08-2003 à 21:22:12  profilanswer
 

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.


---------------
trainoo.com, c'est fini
n°477522
red factio​n
Posté le 04-08-2003 à 21:22:29  profilanswer
 

c des king chez crosoft ya pas a dire
 
deja que jai parfois du mal en c++ alors si le compilo s'y met

n°477523
Taz
bisounours-codeur
Posté le 04-08-2003 à 21:23:22  profilanswer
 

red faction a écrit :

c des king chez crosoft ya pas a dire
 
deja que jai parfois du mal en c++ alors si le compilo s'y met

des fois, c'est vraiment la faut du marteau

n°477533
schnapsman​n
Zaford Beeblefect
Posté le 04-08-2003 à 21:38:21  profilanswer
 

nraynaud a écrit :

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.


 
"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.


Message édité par schnapsmann le 04-08-2003 à 21:40:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  pourquoi ne faut til pas mettre le .h dans qd on inclut....

 

Sujets relatifs
Mettre le focus sur la derniere ligne d'un tableauLe w3c, c bien que pour mettre un logo w3c compliant sur un site!
[HTML, JS] mettre un son sur une page web ?Mettre dans une string le contenu d'un fichier texte qui est en ligne
[InstallShield]Mettre a jour le path systemquestion con : peut-on mettre un if seul ?
Optimisation - Ne pas mettre à jour en temps réel[VBA, access] mettre autre chose qu'un fichier office en 'object'
Mettre une valeur dans un champ excel ...Mettre une image dans une image ....
Plus de sujets relatifs à : pourquoi ne faut til pas mettre le .h dans qd on inclut....


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)