Обычный способ использования TCPServerParams
заключается в том, что он работает вместе с TCPServer
. Сначала вы создаете TCPServerParams
с помощью new
, затем оно передается в TCPServer
, который становится владельцем параметров. Это описано в справке TCPServer .
Сервер также становится владельцем объекта TCPServerParams.
поэтому TCPServer
удаляет экземпляр параметра там, где он не нужен.
Вы не можете удалить TCPServerParams
вручную с помощью delete
, потому что деструктор защищен.
В библиотеке Poco многие классы имеют защищенный деструктор, что заставляет вас использовать Poco::AutoPtr
класс для управления временем жизни экземпляров.
TCPServerParams
происходит от RefCountedObject
. RefCountedObject
обеспечивает механизм счетчика ссылок. У него есть метод release
, который удаляет объект, когда заканчивается время жизни AutoPtr
.
Чтобы вы могли написать:
Poco::AutoPtr<Poco::Net::TCPServerParams> p(new Poco::Net::TCPServerParams());
и память освобождается автоматически AutoPtr
.