Запитання з тегом «shared-ptr»

Довідковий підрахунок класу смарт-покажчиків, що реалізує спільне право власності


4
Передача shared_ptr <Derived> як shared_ptr <Base>
Який найкращий метод використовувати передачу shared_ptrпохідного типу функції, яка приймає shared_ptra базового типу? Я зазвичай передаю shared_ptrs за посиланням, щоб уникнути непотрібної копії: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); але це не працює, якщо я намагаюся зробити щось подібне int foo(const shared_ptr&lt;Base&gt;&amp; ptr); ... shared_ptr&lt;Derived&gt; bar = make_shared&lt;Derived&gt;(); foo(bar); Я міг би …

5
Передача спільних покажчиків як аргументів
Якщо я оголошую об'єкт, загорнутий у спільний вказівник: std::shared_ptr&lt;myClass&gt; myClassObject(new myClass()); тоді я хотів передати це як аргумент методу: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr&lt;myClass&gt; arg1) { arg1-&gt;someField = 4; } Чи вищезгадане просто збільшує кількість посилань на shared_pt, і все круто? Або це залишає звисаючий вказівник? Ви все ще …

7
Приклад використання shared_ptr?
Привіт, сьогодні я задав питання про те, як вставити різні типи об’єктів в один і той же векторний масив, і мій код у цьому питанні був gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { …

2
У чому різниця між порожнім та нульовим std :: shared_ptr у C ++?
Cplusplus.com shared_ptrсторінка волає відмінність між порожнім std::shared_ptr і в нулі shared_ptr . Сторінка cppreference.com явно не називає відмінності, але використовує як "порожній", так і порівняння для nullptrопису std::shared_ptrповедінки. Чи існує різниця між порожнім і нульовим значенням shared_ptr? Чи існує варіант використання таких покажчиків із змішаною поведінкою? Чи shared_ptrмає сенс не …
80 c++  c++11  shared-ptr 

5
shared_ptr та слабкі_ptr відмінності
Я читаю книгу Скотта Майерса "Ефективний C ++". Було згадано, що існують tr1::shared_ptrі tr1::weak_ptrдіють як вбудовані вказівники, але вони відстежують, скільки tr1::shared_ptrsвказує на об’єкт. Це називається підрахунком посилань. Це добре допомагає запобігти витоку ресурсів в ациклічних структурах даних, але якщо два або більше об'єктів містять tr1::shared_ptrsтаке, що формується цикл, цикл …

3
Чи зберігається делетер shared_ptr в пам'яті, виділений спеціальним розподільником?
Скажіть, у мене є shared_ptrспеціальний розподільник і користувацький делетер. Я не можу знайти нічого, що відповідає стандарту, який би говорив про те, де слід зберігати делетер: він не говорить про те, що користувацький розподільник буде використовуватися для пам'яті делетера, і не говорить про те, що його не буде. Це не …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.