Указатель на уничтожение уничтоженного класса

Хорошо, после некоторых тестов и исследований я нашел ответ.

Если вы нацеливаете 26> (что вам нужно будет сделать из-за новых требований из конец месяца), ваш значок будет круглым, или вокруг него будет круглый (контейнер).

Здесь обсуждается это.

Я также хотел бы посоветовать вам взглянуть на адаптивные значки , которые теперь станут необходимым способом установки значков.

Используя адаптивные значки, вы можете установить фон и переднем плане ваших значков и установите форму для разных устройств:

Ответ на @InsaneCat верен, но он будет устаревать к концу месяца.

Теперь вам нужно будет создать адаптивные и устаревшие иконки запуска, вы можете узнать об этом здесь .

Последний вопрос, который является самым важным - всегда ссылайтесь на официальную документацию, так как многие ответы устарели, и все отвечают просто, чтобы получить repu .

0
задан meowgoesthedog 19 January 2019 в 16:47
поделиться

2 ответа

Вам просто нужно использовать std :: shared_ptr и std :: weak_ptr .

shared_ptr настолько умны, что вам не нужно их удалять, они будут удалены, когда никто больше на них не ссылается. Тогда любой weak_ptr, связанный с этим shared_ptr, будет в некотором роде проинформирован, и для него не будет риска получить доступ к нераспределенной памяти.

Когда это потребуется, weak_ptr попытается lock() создать локальный shared_ptr. Если исходный shared_ptr был удален, lock() не удастся создать локальный shared_ptr, и вы будете уверены, что исходный указатель был удален.

// Example program
#include <iostream>
#include <assert.h>
#include <memory>

int main()
{
    std::shared_ptr<int> pI( new int(3) );
    std::weak_ptr<int> wI( pI );

    {
        // check if weak_ptr still "points" to some valid data:
        std::shared_ptr<int> pICopy = wI.lock();
        assert( pICopy != NULL );
        std::cout << "pI still valid " << *pICopy << std::endl;
    }

    pI.reset(); // this is equivalent to regular delete with shared_ptr

    {
        // check if weak_ptr does not "point" to any valid data:
        std::shared_ptr<int> pICopy = wI.lock();
        assert( pICopy == NULL );
        std::cout << "pI not valid anyore" << std::endl;
    }
}
0
ответ дан jpo38 19 January 2019 в 16:47
поделиться

Ужасный беспорядок и много работы для каждой отдельной вещи, которая может быть освобождена

Ну, не делайте очистки в деструкторе. Создайте отдельную функцию и вызовите ее в деструкторе. Вы можете вызвать эту обычную функцию очистки от деструкторов других объектов.

0
ответ дан Syed.Waris 19 January 2019 в 16:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: