je pensais qu'on allait jamais traiter cette notion, au moins ça s'était plus clair... je visionnaire la vidéo à 3h pour être top , merci de traiter les espaces de nom , Jason
Bonjour, Je bute sur un problème que je n'arrive pas à résoudre. Dans util.hpp, j'ai défini "namespace Util{}" à l'intérieur duquel j'ai défini "bool string;" et que je n'utilise nulle part. J'ai une erreur lors du link : "définitions multiples de Util::string". J'avais cru comprendre que std::string et Util::string ne seraient pas en conflit. Je n'utilise nulle part "using namespace std" ;) J'ai loupé quelque chose ?
Bonjour, Il y a une petite erreur, me semble-t-il. La déclaration (en 25:40) : using TLNN = TooLongNamespaceName; est invalide, car cette forme de déclaration attend un TYPE de données, comme tu le fais (en 26:03) lorsque tu déclares : using entier = int; int est bien un TYPE de données. Ceci dit, je me pose une question. J'ai fort bien compris que, dans la mesure du possible, il fallait s'affranchir d'utilser le 'using namespace' afin de prévoir tout conflit de noms. Dans ce cas, quel est l'intérêt d'utiliser ce dernier ? Merci beaucoup pour tout. A bientôt
Bonjour, c'était pour montrer avec ce que l'on avait vu précédemment, mais pour les espaces de nom, on fait un alias avec l'autre syntaxe montrée : namespace TLNN = TooLongNamespaceName; On évite l'usage du "using namespace" surtout dans une portée globale. Dans une portée locale, cela ne pose pas de problèmes, et on le fait assez régulièrement, notamment pour utiliser de vraies chaînes de caractères.
bonjour je suis en train de suivre votre formation car je viens de commencer le codage et je n'arrive pas à réaliser le programme que vous avez fait à 19min, ça me dit main.cpp: In function 'int main()': main.cpp:11:5: error: 'test' was not declared in this scope; did you mean 'Util::test'? 11 | test(); | ^~~~ | Util::test In file included from main.cpp:1: util.hpp:9:14: note: 'Util::test' declared here 9 | void test(); // Util::test() | ^~~~ est-ce que vous pouvez m'aider s'il vous plait. Merci d'avance et bonne continuation pour vos vidéos
Bonjour, le compilateur indique que tu as fait une erreur, et suggère d'écrire plutôt Util::test(), ce qui est à faire si ta fonction test() est dans l'espace de noms "Util" 👍
Si ta fonction test() est définie dans un espace de noms "Util", tu dois effectivement l'appeler avec Util::test(). Sinon, il faut définir cette fonction en dehors de toute espace de nom, si tu veux qu'elle fasse partie de l'espace global, avec un simple appel en faisant test() : pastebin.com/4TLfnTnw
Pas du tout d'accord avec le fait de conseiller de ne pas mettre le "using namspace". Si tu ne sais pas l'environnement du code que tu es en train de taper, mieux vaut abandonner la programmation.
Pourtant, cela fait partie des bonnes habitudes à avoir, de ne pas masquer les espaces de nom, et d'éviter (surtout) les conflits dans le code (je parle du cas précis de mettre un "using namespace" dans une portée globale, en local, c'est autre chose). Et non, tu ne sais pas toujours de quoi est composé l'entièreté d'un environnement et des projets rattachés, surtout quand tu bosses en équipe. Tu n'as généralement pas accès à l'ensemble du code, l'ensemble des projets et applications.
Top !!! J’ai commencé avec Python, puis du C, et C++ c’est vraiment mon languages préféré, merci pour tout !!!
Bon courage en programmation, et bonne journée à toi 😉
je pensais qu'on allait jamais traiter cette notion, au moins ça s'était plus clair...
je visionnaire la vidéo à 3h pour être top ,
merci de traiter les espaces de nom , Jason
De rien, bon visionnage en avance 😉
Excellent ! J ' aime bien cette formation , elle est très bien expliquée ! Merci pour tout!!!
De rien, bonne continuation en C++
j'aime tes videos :)
Merci 🙏
merci c'et top
👍
Top 👍
Parfait je savait pas pour les espace anonyme nickel le static c’était pas terrible
Oui, on a de quoi remplacer tout ça 😉
Bonjour,
Je bute sur un problème que je n'arrive pas à résoudre.
Dans util.hpp, j'ai défini "namespace Util{}" à l'intérieur duquel j'ai défini "bool string;" et que je n'utilise nulle part.
J'ai une erreur lors du link : "définitions multiples de Util::string".
J'avais cru comprendre que std::string et Util::string ne seraient pas en conflit.
Je n'utilise nulle part "using namespace std" ;)
J'ai loupé quelque chose ?
Bonjour, cette erreur indique que le compilateur trouve plusieurs définitions de la classe Util (ça doit venir de tes inclusions)
Bonjour,
Il y a une petite erreur, me semble-t-il. La déclaration (en 25:40) :
using TLNN = TooLongNamespaceName;
est invalide, car cette forme de déclaration attend un TYPE de données, comme tu le fais (en 26:03) lorsque tu déclares :
using entier = int;
int est bien un TYPE de données.
Ceci dit, je me pose une question. J'ai fort bien compris que, dans la mesure du possible, il fallait s'affranchir d'utilser le 'using namespace' afin de prévoir tout conflit de noms. Dans ce cas, quel est l'intérêt d'utiliser ce dernier ?
Merci beaucoup pour tout.
A bientôt
Bonjour, c'était pour montrer avec ce que l'on avait vu précédemment, mais pour les espaces de nom, on fait un alias avec l'autre syntaxe montrée : namespace TLNN = TooLongNamespaceName;
On évite l'usage du "using namespace" surtout dans une portée globale. Dans une portée locale, cela ne pose pas de problèmes, et on le fait assez régulièrement, notamment pour utiliser de vraies chaînes de caractères.
bonjour je suis en train de suivre votre formation car je viens de commencer le codage et je n'arrive pas à réaliser le programme que vous avez fait à 19min, ça me dit main.cpp: In function 'int main()':
main.cpp:11:5: error: 'test' was not declared in this scope; did you mean 'Util::test'?
11 | test();
| ^~~~
| Util::test
In file included from main.cpp:1:
util.hpp:9:14: note: 'Util::test' declared here
9 | void test(); // Util::test()
| ^~~~
est-ce que vous pouvez m'aider s'il vous plait. Merci d'avance et bonne continuation pour vos vidéos
Bonjour, le compilateur indique que tu as fait une erreur, et suggère d'écrire plutôt Util::test(), ce qui est à faire si ta fonction test() est dans l'espace de noms "Util" 👍
Oui mais c'est pour réaliser la fonction void test( )
{
std::cout
Si ta fonction test() est définie dans un espace de noms "Util", tu dois effectivement l'appeler avec Util::test(). Sinon, il faut définir cette fonction en dehors de toute espace de nom, si tu veux qu'elle fasse partie de l'espace global, avec un simple appel en faisant test() : pastebin.com/4TLfnTnw
ok merci@@formation-video
👍
Pas du tout d'accord avec le fait de conseiller de ne pas mettre le "using namspace". Si tu ne sais pas l'environnement du code que tu es en train de taper, mieux vaut abandonner la programmation.
Pourtant, cela fait partie des bonnes habitudes à avoir, de ne pas masquer les espaces de nom, et d'éviter (surtout) les conflits dans le code (je parle du cas précis de mettre un "using namespace" dans une portée globale, en local, c'est autre chose).
Et non, tu ne sais pas toujours de quoi est composé l'entièreté d'un environnement et des projets rattachés, surtout quand tu bosses en équipe. Tu n'as généralement pas accès à l'ensemble du code, l'ensemble des projets et applications.