Форум программистов, компьютерный форум CyberForum.ru

интеллектуальные указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решето Эратосфена http://www.cyberforum.ru/cpp-beginners/thread665022.html
Дано число N (2<=N <=10000), найдите и выведите простые числа между 2 и данным N. Простое число - число, которое может быть разделено ТОЛЬКО на 1 и на себя самого. Примеры: 2, 13, 17 Намек: Используйте метод Эратосфена. Посмотрите, как это работает ниже на картинке. Give N (2<=N<=10000) number,find and output the prime numbers between 2 and given N. Prime number is the number that can...
C++ C++. Интеграл Найти интеграл функции за 3 типами: прямоугольника, трапеции, Симпсона - e в степени корень квадратный модуль икс. http://www.cyberforum.ru/cpp-beginners/thread665018.html
C++ массив структур
Вопрос собственно говоря простой: как объявить функции, работающие с массивом структур как то ввод, вывод и т.д. и т.п. Это первый вопрос. Задач много. Чтоб не заводить сотню тем буду спрашивать совета здесь. Насколько я понял массив структур объявляется так: struct vector { double x; double y; double z; }; int const size=10;
Сортировка двумерного массива и заголовочный файл C++
Помогите пожалуйста исправить ошибку. sort2.h: void sort2(int array,int n); sort2.cpp: #include "sort2.h"; #include "stdafx.h"; void sort2(int array, int n)
C++ Функции в struct http://www.cyberforum.ru/cpp-beginners/thread664998.html
Я даже не думал, что в struct можно объявлять функции. Представлялось так: struct - набор данных, class - уже объектное что-то, грубо выражаясь данные+методы. Оказалось не совсем так. Тогда в чем отличия, если и там и там, есть методы, наследование, конструкторы, деструкторы?
C++ Удаление комментариев из листинга программы Создать программу, которая будет удалять из листинга программы на языке с++ (файл*.cpp) коментарии вида // коментарий. Для работы с файлами использовать фунцкцию cstdio. подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.10.2012, 00:42     интеллектуальные указатели
Задача всех этих умных указателей: облегчить менеджмент памяти в случаях, когда владение указателями не сосредоточено где-то в одном месте, а может передаваться, разделятся и тому подобное. Естественно, всё это ценой определённой потери в скорости. Она не особо критична, но всё же есть.

Суть: reference counting. За каждым объектом закрепляется счётчик, который показывает, сколько указателей на этот объект в данный момент живы в программах. Вот это объединение объекта и счётчика называется smart pointer. Smart, потому что он может сам удалить охраняемый объект, когда никто больше не ссылается на него. Или, например, реализовывать операцию удаления объекта не только автоматически, но и принудительно, но все остальные клоны-указатели не будут указывать чёрти куда, а вежливо бросят в лицо исключение вместо того, чтобы тихо гадить память. (Естессно, это всё работает ещё и с предположением, что вы не будете использовать обычные указатели на объекты со счётчиками. По крайней мере в потенциально разрушительных целях.)

Если аккуратно следить за передачей владения объектами, вполне можно обойтись и без них. Но не у всех достаточно мозгов/терпения/времени, чтобы следить вручную/тщательно прорабатывать архитектуру и т. п.
 
Текущее время: 17:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru