Un type de données abstrait qui simule un pointeur tout en fournissant des fonctionnalités supplémentaires, telles que la collecte automatique des déchets ou la vérification des limites

smart-pointers...

Comment puis-je renvoyer ce tableau à la fonction principale pour une utilisation ultérieure dans mon programme? int* enterMarks(int marks) { int arr[marks]; cout << "Please enter " << marks << "marks (0<=Mark<=100):" << endl; for (int i = 0; i < marks; i++) { cout << i+1 << ">"; cin >> ar....
Quelqu'un peut-il expliquer pourquoi le destructeur de la classe bar est appelé dans la ligne où l'objet du même type est initialisé? #include <memory> #include <iostream> using namespace std; class bar { public: bar() {} ~bar() { std::cout << "destructor....
6 mai 2020 à 04:28
http://www.cplusplus.com/reference/memory/shared_ptr/ dit Un shared_ptr qui ne possède aucun pointeur est appelé un shared_ptr vide. Un shared_ptr qui ne pointe vers aucun objet est appelé un shared_ptr nul et ne doit pas être déréférencé. Notez cependant qu'un shared_ptr vide n'est pas nécessaireme....
28 avril 2020 à 15:55
J'ai appris que lorsque vous utilisez des pointeurs dans une classe, vous devez implémenter la règle de 5. Si vous n'utilisez pas de pointeurs, vous pouvez, et en fait, il est préférable d'utiliser les valeurs par défaut. Cependant, comment cela fonctionne-t-il avec des pointeurs intelligents? Par e....
J'y ai réfléchi récemment, et le seul argument que je peux voir pour avoir un opérateur d'égalité pour std :: unique_ptr est l'exhaustivité de sorte que tous les pointeurs intelligents de la bibliothèque de modèles standard l'ont. Mais à moins que vous n'ayez fait quelque chose de mal, je ne vois au....
Cela semble être une question assez stupide, alors soyez indulgents avec moi. J'utilise des pointeurs intelligents à la place des pointeurs bruts dans mes programmes. Il m'est déconseillé d'utiliser des pointeurs bruts ou de mélanger les deux autant que possible. Je comprends cela aussi. Je suis éga....
16 févr. 2020 à 16:37
Je suis en train d'étudier pour un test C ++ et l'une des questions est la suivante: std::unique_ptr<Rectangle> rec = std::make_unique<Rectangle>(0, 0, 15, 15); // why must we use rec.get()->? rec.get()->setWidth(30); rec.get()->draw(); Ce que je me demande, c'est pourquoi avons-nous besoin du .ge....
8 févr. 2020 à 20:01
Cette question vient de moi essayant de comprendre la motivation des pointeurs intelligents où vous créez une classe wrapper autour du pointeur afin que vous puissiez ajouter un destructeur personnalisé. Les pointeurs (et les entiers, booléens, doubles, etc.) n'ont-ils pas de destructeur?....
31 janv. 2020 à 18:24
J'ai fait ça pour partager le learning_rate entre tous mes neurones: class neural_network { public: neural_network(float learning_rate = 0.005f) : learning_rate(new float(learning_rate)){}; shared_ptr<float> learning_rate; private: vector<neuron> neurons; }; class neuron { public: ne....
2 déc. 2019 à 16:20
Je suis nouveau dans les pointeurs intelligents, j'ai aimé les utiliser pour la sécurité et le pouvoir de partager des objets ... J'ai une question: si ma classe gère une ressource dans ses constructeurs et destructeurs en appliquant certaines règles de base comme le Big 5 et le Big 3 ... Dois-je to....
31 oct. 2019 à 02:03
Dans ce code: void f(std::unique_ptr<int> q) { } void g() { std::unique_ptr<int> p{new int{42}}; f(std::move(p)); } À quelle ligne p est-il désalloué? Je dirais à la sortie de la fonction f car elle a été déplacée là-bas en utilisant std :: move, mais je ne suis pas sûr ni sûr de cette rép....
Tout d'abord, je sais que nous devrions utiliser std::make_unique() au lieu d'appeler le constructeur std::unique_ptr et je sais pourquoi. Mais je regardais la documentation de std::unique_ptr pour passer le temps et affiner mes connaissances à ce sujet et j'ai trouvé le exemples suivants sur l'util....
19 sept. 2019 à 17:47
J'ai une question sur un exemple dans les directives de base Cpp. Dans R.37: Ne passez pas un pointeur ou une référence obtenue à partir d'un pointeur intelligent aliasé, voici l'exemple suivant: // global (static or heap), or aliased local ... shared_ptr<widget> g_p = ...; void f(widget& w) { ....
29 août 2019 à 19:17
Un unique_ptr ne peut pas être repoussé dans un std::vector car il n'est pas copiable, sauf si std::move est utilisé. Cependant, soit F une fonction qui renvoie un unique_ptr, alors l'opération std::vector::push_back(F()) est autorisée. Voici un exemple ci-dessous: #include <iostream> #include <vect....
7 juil. 2019 à 23:37
J'ai une classe qui contient un vector<shared_ptr<T>>: using SharedItems = std::vector<std::shared_ptr<Item>>; class LargeLift { public: SharedItems& getItems() { return _items; } void setSharedItems(SharedItems& items) { _items = items; } private: Shar....
29 juin 2019 à 23:05
Si nous avons une classe de pointeur intelligent qui peut prendre un objet arbitraire et fournir un pointeur compté par référence, comment allons-nous stocker réellement l'entier qui compte les références? Le nombre de références doit être partagé entre toutes les instances de la classe de pointeur ....
20 juin 2019 à 22:18
J'écris une bibliothèque qui s'interface entre kdb + (bien que cette question soit applicable aux interfaces de langue étrangère en général), et une bibliothèque C ++ où la plupart des appels d'API renvoient un std::shared_ptr. Lors de l'interfaçage avec la plupart des bibliothèques avec kdb +, il e....
5 juin 2019 à 23:13
J'essaie de mettre à jour du code qui transmet un nouvel objet. Le but est de le gérer avec un pointeur intelligent. Réduit, cela ressemble beaucoup à ceci: class X { shared_ptr<Y> yptr; X() : yptr(Y::create(new Z())){} }; class Y { Z* zptr; static shared_ptr<Y> create(Z* zp) {....
7 mai 2019 à 20:50
Je fais un projet pour l'université et j'essaie de savoir comment supprimer correctement la mémoire et si la méthode de suppression que j'ai proposée aura le même effet que l'utilisation du pointeur intelligent. C'est une classe qui accueillera tous les employés travaillant dans l'entreprise et les ....
6 mai 2019 à 11:54
Les pointeurs partagés sont sans aucun doute une bonne idée. Mais tant qu'un programme à grande échelle comprend des pointeurs bruts, je pense qu'il y a un grand risque à utiliser des pointeurs partagés. Surtout, vous perdrez le contrôle du cycle de vie réel des pointeurs vers des objets qui contien....
3 avril 2019 à 19:38
Je passe de C # / Java à C ++ et j'ai du mal à comprendre la bonne façon de faire les choses. Je construis une sorte de structure de données pour supporter un algorithme et une fonctionnalité. Supposons donc qu'un objet extérieur contienne un std::vector<Widget> vecW et un std::vector<Vidget> vecV. ....
2 mars 2019 à 00:31
Est-il jamais judicieux de créer un std::unique_ptr en utilisant new? Dans l'extrait ci-dessous, je soupçonnais que l'objet SimpleClass géré par le std::unique_ptr ne sera pas détruit à moins que je ne supprime le std::unique_ptr moi-même. Je ne pouvais pas penser à une situation où cela serait util....
16 févr. 2019 à 20:52
Comment puis-je choisir entre std :: containers (std::vector ou std::array) et des pointeurs intelligents pointant vers des tableaux Je sais que les conteneurs sont des objets pour la gestion de la mémoire. Ils sont exceptionnellement sûrs et il n'y aura pas de fuite de mémoire et ils fournissent ég....
15 févr. 2019 à 14:20
J'ai un pointeur vers une liste de pointeurs, en tant que variable privée. J'ai aussi un getter qui renvoie le pointeur vers la liste. J'ai besoin de le protéger des changements. Je n'ai pas trouvé comment utiliser reinterpret_cast ou const_cast à ce sujet. class typeA{ shared_ptr<list<shared_pt....
Lorsque j'hérite de std::enable_shared_from_this, mais que je crée un unique_ptr, le weak_ptr à l'intérieur de std::enable_shared_from_this sera-t-il également initialisé lorsque je "déplace" vers un shared_ptr par std::move , ou par le constructeur de mouvement? Par exemple, ce qui se passera dans ....
18 déc. 2018 à 17:09