Что Майерс хотел сказать следующим кодом.
std::tr1::shared_ptr<Investment> createInvestment()
{
std::tr1::shared_ptr<Investment> retVal(static_cast<Investment*>(0),
getRidOfInvestment);
... // make retVal point to the
// correct object
return retVal;
}
почему в retVal передается 0, и как потом перед return передать в retVal указатель.
Передаётся 0, т.к. реальный объект ещё не создан и если его не смогли создать, то вернётся shared_ptr указывающий на нулевой указазатель. Присвоить например так:
retVal = std::tr1::shared_ptr<Investment>(new InvestmentEx(), getRidOfInvestment);
Этот пример показывает идею автоматической "подчистки". Функция createInvestment создает "инвестицию" (сущность). Но нужно не забыть её "закрыть" (удалить, завершить). Пока пользоватеть (программист) хранит возвращенный умный указатель, объект "инвестиция" живет. Когда указатель выйдет за пределы области видимости, автоматически будет вызвана функция "завершения".
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! В метод может придти как dom-объект(не пинайте за терминологию):
Нужно получить случайный набор букв и цифр (string), заданной длинны, например 10Как можно такое реализовать в JS?
Нужно создать html-5 баннер в Adobe Animate с фиксированной шириной (300px) и адаптивной высотой (минимальная высота должна оставаться 600px)Animate при настройке...