Запитання з тегом «smart-pointer»

11
Навіщо збирання сміття, якщо там є розумні покажчики
У наші дні стільки мов збирають сміття. Він навіть доступний для C ++ третіми сторонами. Але C ++ має RAII та розумні покажчики. Тож який сенс використовувати сміття? Це робить щось зайве? І в інших мовах, таких як C #, якщо всі посилання розглядаються як розумні покажчики (не відхиляючи RAII …

9
std :: shared_ptr в крайньому випадку?
Я просто дивився потоки "Ідучий рідний 2012" і помітив дискусію std::shared_ptr. Я трохи здивований, почувши дещо негативний погляд Бьярна на std::shared_ptrйого коментар, що його слід використовувати як "крайній захід", коли життєвий час об'єкта є невизначеним (що, на його думку, на його думку, нечасто має бути так). Хтось би потурбував би …

1
raw, slab_ptr, unique_ptr, shared_ptr і т. д. ... Як їх правильно вибрати?
У C ++ є багато покажчиків, але якщо чесно, через 5 років або близько того в програмуванні на C ++ (конкретно з Qt Framework), я використовую лише старий необроблений покажчик: SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); Я знаю, що існує багато інших "розумних" покажчиків: // shared pointer: shared_ptr<SomeKindofObject> Object; // unique …

5
Чому Java / C # не може реалізувати RAII?
Питання: Чому Java / C # не може реалізувати RAII? Пояснення: Я знаю, що сміттєзбірник не є детермінованим. Таким чином, з поточними особливостями мови неможливо автоматично викликати метод об'єкта Dispose () при виході з області дії. Але чи можна додати таку детерміновану ознаку? Моє розуміння: Я вважаю, що реалізація RAII …

5
C ++: Чи повинен клас володіти або спостерігати його залежності?
Скажіть, у мене є клас, Foobarякий використовує (залежить від) клас Widget. У добрі дні Widgetwolud буде оголошений як поле в Foobar, або, можливо, як розумний вказівник, якщо потрібна поліморфна поведінка, і вона буде ініціалізована в конструкторі: class Foobar { Widget widget; public: Foobar() : widget(blah blah blah) {} // or …

3
Чи знищить великий список переповнення моєї стеки?
Розглянемо таку реалізацію списку, що стосується окремо: struct node { std::unique_ptr<node> next; ComplicatedDestructorClass data; } Тепер, припустимо, я припиняю використовувати якийсь std::unique_ptr<node> headекземпляр, який потім виходить за межі, викликаючи виклик його деструктора. Чи вдасться це підірвати мій стек для достатньо великих списків? Чи справедливо припустити, що компілятор зробить досить складну …

1
Розробка магазину ключів / вартості, яка переходить на сучасний C ++
Я розробляю сервер баз даних, схожий на Cassandra. Розробка була розпочата в С, але все стало дуже складним без занять. Наразі я все портував на C ++ 11, але я все ще навчаюсь "сучасного" C ++ і маю сумніви щодо багатьох речей. База даних буде працювати з парами ключ / …

4
Чи недетермінований менеджмент ресурсів є вичерпною абстракцією?
Як я бачу, існують дві поширені форми управління ресурсами: детерміновані знищення та явні. Прикладом першого можуть бути деструктори C ++ та розумні покажчики або підрозділ DESTROY Perl, тоді як прикладом останнього може бути парадигма блоків для управління ресурсами Ruby або інтерфейс ID. Нові мови, здається, вибирають останнє, можливо, як побічний …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.