Oui les pointeurs !!!!! Celle là je l'attends depuis longtemps! Gros gros merci à toi pour le temps que tu consacres à nous faire ces super cours. J'y reviens régulièrement dans mon apprentissage en programmation! 😉
Bonjour Jason, Je souhaite vous remercier du contenu passionnant et formateur que vous postez sur votre chaîne. Dans le cadre d’une reconversion professionnelle et d’un développement logiciel (projet personnel) qui me tient à cœur, depuis le début d’année, je suis avec attention vos formations en Python, C et C++ qui m’ont permis de retrouver avec plaisir la programmation que j’avais délaissée il y a une dizaine d’années. Vous m’avez apporté une aide pédagogique précieuse dans ce que je souhaite mettre en place.
Bonjour, Je travaille dans s l'infoatique et je suis tombé sur ta vidéo aujourd'hui par hasard. J'ai fait pas mal de Java, C et C++ pendant ma scolarité et j'ai fait du C++ en entreprise du coup j'ai des notions mais ce petit retour aux fondamentaux sur les pointeurs m'a fait le plus grand bien.J'ai découvert quelques petites pépites que je ne connaissais pas, c'est chouette, pareil sur tout ce qui gestion du temps ainsi que la partie algo. Je sais pas comment ca été codé mais j'imagine que le compteur de références pour les shared ptr est une variable gérée par la classe pour être accessible á toutes les instances (un variable static déclarée private) qui est incrementé par les constructeurs/opérateurs d'affectation redefini dans shared ptr. Du coup j'imagine qu'acceder á ce compteur pour weak ptr doit faire intervenir la notion de classe amie : weak ptr déclaré comme friend class dans shared ptr ou un truc de ce style ou alors ca utilise des mecanisme que je ne connais pas. C'est une hypothèse bien sûr😅😅.
Un petit like et le petit commentaire pour le referencement! Pas encore regardé mais c'est sûrement une masterclass comme toujours. Mais avant, j'ai quelques vidéos de retard 😊😊
Je suis étudiant dans la programmation jeu vidéo depuis maintenant deux ans. Je suis formé à la fois à l'utilisation du C++ ainsi qu'à celle du C#. Jusqu'à présent je n'ai pas eu de cours concernant ces fameux smart ptr, nous utilisions les fameux new/delete. Les smartptr me font penser un peu au garbage collector (alias gc) du C#, qui s'occupe pour nous de gérer la memoire des objets lorsque l'on ne s'en sert plus. C'est avantageux concernant les leak mémoires, mais le fait de ne pas avoir le contrôle total sur cette étape peut être problématique : si le gc choisis d'agir au mauvais moment et sur une trop grand quantité de données, on peut avoir des freezes durant le gameplay, ce qui, on le sais d'expérience, ne sera absolument pas bien pris par les utilisateurs. Quand cela arrive, nous avons bien peu de leviers pour limiter la chose. Tandis qu'en C++, via les new et delete, nous pouvons choisir précisément les timings où nous souhaitons libérer la mémoire, en particulier lorsque l'on parle d'une grande quantité de données à traiter en une fois. Pour autant, il est vrai qu'il est très rapide d'oublier un delete en code et de causer un leak mémoire. Je me demande donc si nos formateurs préfèrent attendre pour nous faire acquérir d'autres compétences avant de nous montrer ces outils, où si les jeux vidéos développés en C++ se servent peu de ces derniers justement pour nous laisser maître de la gestion mémoire.
Alors bonne nouvelle : en C++, l'utilisation de pointeurs intelligents n'apporte en aucun cas de surcharge importante comme cela pourrait arriver avec un ramasse-miettes sur d'autres langages. Il n'y a donc vraiment plus de raison valable d'utiliser la vieille syntaxe new/delete. Et si vraiment tu veux pouvoir libérer une ressource quand tu veux, cela est possible et a été montré en vidéo, à l'aide de la méthode reset() 👍
Est-ce qu'on aura des vidéos sur des bibliothèques graphiques ou des Gui c++ avant la fin de la formation ; où ça sera dans une formation à part comme Java FX. Ay j'oublie pas! T'es trop fort Jason :)
Merci beaucoup pour ce travail mémorable Jason. Par ailleurs comptes tu faire une vidéo sur le multithreading et les sémaphores (ou bien pas dans ce cous) ?
On s'en sert souvent (mais pas que) pour éviter des problèmes de références circulaires. Ou tout simplement, pour pouvoir pointer sur une ressource sans forcément multiplier le nombre de propriétaires.
Bonjour Merci pour ce beau cours sur les pointeurs. Je n'arrive pas à faire fonctionner cette partie de code : std::unique_ptr ptr1{std::make_unique(12)}; std::unique_ptr ptr4(ptr1.release()); if (ptr4) std::cout
Bonjour, utilise std::move pour transférer la propriété : std::unique_ptr ptr4(std::move(ptr1)); Autre point : il ne faut pas masquer globalement std comme tu l'as fait (using namespace std), afin d'éviter des conflits dans ton code 👍
Dans les grandes lignes : - Un pointeur est une variable qui permet de mémoriser l'adresse d'une autre variable. Il peut éventuellement pointer sur "nullptr" (ou même ne pas être initialisé) et peut aussi changer de variable sur laquelle il pointe. On peut également faire de l'arithmétique avec ces derniers. Enfin, ils servent à la gestion dynamique de la mémoire. - Une référence est comme un alias pour une autre variable du programme, qui doit donc être initialisé en faisant référence à une autre donnée, et ne peut en changer, ni ne faire référence à rien. On s'en sert donc, et surtout, pour passer des arguments à des fonctions en vue des les modifier dans celle-ci (et éviter leur copie). J'espère que cela aura été plus clair 🙂
Oui les pointeurs !!!!! Celle là je l'attends depuis longtemps!
Gros gros merci à toi pour le temps que tu consacres à nous faire ces super cours.
J'y reviens régulièrement dans mon apprentissage en programmation! 😉
De rien, et bonne continuation à toi 👋
Bonjour Jason,
Je souhaite vous remercier du contenu passionnant et formateur que vous postez sur votre chaîne. Dans le cadre d’une reconversion professionnelle et d’un développement logiciel (projet personnel) qui me tient à cœur, depuis le début d’année, je suis avec attention vos formations en Python, C et C++ qui m’ont permis de retrouver avec plaisir la programmation que j’avais délaissée il y a une dizaine d’années. Vous m’avez apporté une aide pédagogique précieuse dans ce que je souhaite mettre en place.
Bonjour, et bonne reconversion alors, c'est bien parti 👍
Ah yes ! Nous y voila. Le cœur important du langage.
Bonjour, Je travaille dans s l'infoatique et je suis tombé sur ta vidéo aujourd'hui par hasard. J'ai fait pas mal de Java, C et C++ pendant ma scolarité et j'ai fait du C++ en entreprise du coup j'ai des notions mais ce petit retour aux fondamentaux sur les pointeurs m'a fait le plus grand bien.J'ai découvert quelques petites pépites que je ne connaissais pas, c'est chouette, pareil sur tout ce qui gestion du temps ainsi que la partie algo.
Je sais pas comment ca été codé mais j'imagine que le compteur de références pour les shared ptr est une variable gérée par la classe pour être accessible á toutes les instances (un variable static déclarée private) qui est incrementé par les constructeurs/opérateurs d'affectation redefini dans shared ptr. Du coup j'imagine qu'acceder á ce compteur pour weak ptr doit faire intervenir la notion de classe amie : weak ptr déclaré comme friend class dans shared ptr ou un truc de ce style ou alors ca utilise des mecanisme que je ne connais pas. C'est une hypothèse bien sûr😅😅.
Bonjour, cela utilise surtout pas mal de mécanismes et optimisations propres au compilateur.
Et bienvenue sur la chaîne ! 👍
Un petit like et le petit commentaire pour le referencement!
Pas encore regardé mais c'est sûrement une masterclass comme toujours.
Mais avant, j'ai quelques vidéos de retard 😊😊
Merci, et tu auras bien le temps d'arriver à cette vidéo oui 👋
Je suis étudiant dans la programmation jeu vidéo depuis maintenant deux ans.
Je suis formé à la fois à l'utilisation du C++ ainsi qu'à celle du C#.
Jusqu'à présent je n'ai pas eu de cours concernant ces fameux smart ptr, nous utilisions les fameux new/delete.
Les smartptr me font penser un peu au garbage collector (alias gc) du C#, qui s'occupe pour nous de gérer la memoire des objets lorsque l'on ne s'en sert plus. C'est avantageux concernant les leak mémoires, mais le fait de ne pas avoir le contrôle total sur cette étape peut être problématique : si le gc choisis d'agir au mauvais moment et sur une trop grand quantité de données, on peut avoir des freezes durant le gameplay, ce qui, on le sais d'expérience, ne sera absolument pas bien pris par les utilisateurs. Quand cela arrive, nous avons bien peu de leviers pour limiter la chose.
Tandis qu'en C++, via les new et delete, nous pouvons choisir précisément les timings où nous souhaitons libérer la mémoire, en particulier lorsque l'on parle d'une grande quantité de données à traiter en une fois. Pour autant, il est vrai qu'il est très rapide d'oublier un delete en code et de causer un leak mémoire.
Je me demande donc si nos formateurs préfèrent attendre pour nous faire acquérir d'autres compétences avant de nous montrer ces outils, où si les jeux vidéos développés en C++ se servent peu de ces derniers justement pour nous laisser maître de la gestion mémoire.
Alors bonne nouvelle : en C++, l'utilisation de pointeurs intelligents n'apporte en aucun cas de surcharge importante comme cela pourrait arriver avec un ramasse-miettes sur d'autres langages.
Il n'y a donc vraiment plus de raison valable d'utiliser la vieille syntaxe new/delete. Et si vraiment tu veux pouvoir libérer une ressource quand tu veux, cela est possible et a été montré en vidéo, à l'aide de la méthode reset() 👍
Est-ce qu'on aura des vidéos sur des bibliothèques graphiques ou des Gui c++ avant la fin de la formation ; où ça sera dans une formation à part comme Java FX.
Ay j'oublie pas! T'es trop fort Jason :)
Ce sera dans une formation à part
Merci beaucoup pour ce travail mémorable Jason. Par ailleurs comptes tu faire une vidéo sur le multithreading et les sémaphores (ou bien pas dans ce cous) ?
Oui, on en parlera
Beau travail!
🙏
merci grâce a toi j'ai cette notion allons nous faire aussi du graphique dans t'es prochaine vidéo?
merci de ta futur réponse.
Dans ce cours non, mais il y aura une playlist sur Qt
Merci pour cette vidéo sur les pointeurs ! Est-ce que tu as l'intention d'en faire une sur les threads ?
Oui 👍
Nickel j'y voit plus clair avec le weak ptr plus qu'a trouver quand l'utiliser
On s'en sert souvent (mais pas que) pour éviter des problèmes de références circulaires. Ou tout simplement, pour pouvoir pointer sur une ressource sans forcément multiplier le nombre de propriétaires.
Bonjour jason quel framewoerk utiliser pour la création d'application mobile avec le c++ .
Tout framework qui permettrait de faire des applications mobiles avec C++
👍👍👍
: )
Bonjour
Merci pour ce beau cours sur les pointeurs.
Je n'arrive pas à faire fonctionner cette partie de code :
std::unique_ptr ptr1{std::make_unique(12)};
std::unique_ptr ptr4(ptr1.release());
if (ptr4)
std::cout
Bonjour, utilise std::move pour transférer la propriété :
std::unique_ptr ptr4(std::move(ptr1));
Autre point : il ne faut pas masquer globalement std comme tu l'as fait (using namespace std), afin d'éviter des conflits dans ton code 👍
j'ai pas trop compris la différence entre les pointeurs et les références
Dans les grandes lignes :
- Un pointeur est une variable qui permet de mémoriser l'adresse d'une autre variable. Il peut éventuellement pointer sur "nullptr" (ou même ne pas être initialisé) et peut aussi changer de variable sur laquelle il pointe. On peut également faire de l'arithmétique avec ces derniers. Enfin, ils servent à la gestion dynamique de la mémoire.
- Une référence est comme un alias pour une autre variable du programme, qui doit donc être initialisé en faisant référence à une autre donnée, et ne peut en changer, ni ne faire référence à rien. On s'en sert donc, et surtout, pour passer des arguments à des fonctions en vue des les modifier dans celle-ci (et éviter leur copie).
J'espère que cela aura été plus clair 🙂