Хорошо, после некоторых тестов и исследований я нашел ответ.
Если вы нацеливаете 26> (что вам нужно будет сделать из-за новых требований из конец месяца), ваш значок будет круглым, или вокруг него будет круглый (контейнер).
Здесь обсуждается это.
Я также хотел бы посоветовать вам взглянуть на адаптивные значки , которые теперь станут необходимым способом установки значков.
Используя адаптивные значки, вы можете установить фон и переднем плане ваших значков и установите форму для разных устройств:
Ответ на @InsaneCat верен, но он будет устаревать к концу месяца.
Теперь вам нужно будет создать адаптивные и устаревшие иконки запуска, вы можете узнать об этом здесь .
Последний вопрос, который является самым важным - всегда ссылайтесь на официальную документацию, так как многие ответы устарели, и все отвечают просто, чтобы получить repu .
Вам просто нужно использовать 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;
}
}
Ужасный беспорядок и много работы для каждой отдельной вещи, которая может быть освобождена
blockquote>Ну, не делайте очистки в деструкторе. Создайте отдельную функцию и вызовите ее в деструкторе. Вы можете вызвать эту обычную функцию очистки от деструкторов других объектов.