bonjour, j'aimerais savoir la différence entre par exemple:
ça
et çaCode:Static void AfficherTexte(char texte)
merciCode:void AfficherTexte(char texte)
Version imprimable
bonjour, j'aimerais savoir la différence entre par exemple:
ça
et çaCode:Static void AfficherTexte(char texte)
merciCode:void AfficherTexte(char texte)
La fonction static est statique à ton fichier, elle ne peut être utilisée par une fonction déclarée dans un autre fichier (contrairement à une fonction extern).
Si tu ne précises ni extern, ni static, il me semble que la fonction est extern par défaut mais je n'en suis pas sûr.
Le mieu est de préciser (c'est ce que je fais) les fonctions si elles sont statiques ou externes
C'est inutile d'utiliser static sur des fonctions car à part en incluant le .cpp,
ce qui mérite le bûcher, il n'est pas possible de lier une fonction externe qui n'est pas déclarée dans un .h.
Je suppose que Static est en fait static...Citation:
Envoyé par shirya
Ca depend du contexte.
Dans une declaration ou une definition a l'exterieur d'une classe, ca permet
d'avoir des fonctions inconnues a l'exterieur du fichier. C'est une alternative
a l'utilisation de namespace non nomme (qui ont ete introduit posterieurement
a static et offrent un certain nombre d'avantages).
A l'interieur d'une classe, static indique que le membre ainsi declare peut etre appeleCode:
1
2
3
4
5 namespace { void AfficherTexte(std::string texte) { .... } }
sans avoir d'instance, simplement en le qualifiant par le nom de la classe.
Code:MaClasse::AfficherTexte("...");
Sauf que le défaut est "extern" et que le compilo C++ ne sait pas ce qu'est un fichier d'en-tête. Il suffit de rajouter le prototype de la fonction dans les unités de traduction qui voudront sans servir pour pouvoir l'appeler.Citation:
Envoyé par Caine
La présence de static va empécher cela.
C'est plutôt une pratique du C. En C++, l'équivalent est le namespace anonyme:
http://c.developpez.com/faq/cpp/?pag...ESPACE_anonyme