SoftReference
разработан для кэшей. Когда будет найдено, что WeakReference
ссылки в других отношениях недостижимый объект, тогда это будет сразу очищено. SoftReference
может быть оставлен, как. Обычно существует некоторый алгоритм, имеющий отношение на сумму свободной памяти, и время в последний раз раньше определяло, должно ли это быть очищено. Текущий алгоритм Sun должен очистить ссылку, если это не использовалось за столько же секунд, сколько существуют мегабайты памяти, свободной на "куче" Java (настраивающиеся, сервер проверки HotSpot по сравнению с максимальной возможной "кучей", как установлено -Xmx
). SoftReference
с будет очищена, прежде OutOfMemoryError
брошен, если не в других отношениях достижимый.
void doSomething (); похоже на вырезку из заголовочного файла, сам слот реализовали?
краткое замечание о синтаксисе: обычно вы будете использовать либо
connect(from, SIGNAL(sig()), to, SLOT(slot()));
, что в основном эквивалентно
QObject::connect(from, SIGNAL(sig()), to, SLOT(slot()));
, что вы будете делать, если вы вызываете откуда-то не из QObject.
Хотя этот синтаксис:
to->connect(from, SIGNAL(sig()), SLOT(slot()));
тоже разумен. Но этот синтаксис:
to->connect(from, SIGNAL(sig()), to, SLOT(slot()));
просто сбивает с толку и дублирует код.