Can Hoare logic be used when objects are created or deleted?
There is a lot of work on Hoare Logic for object oriented programs, and for reasoning about memory allocation and deallocation. Some starting points:


A Syntax-Directed Hoare Logic for Object-Oriented Programming Concepts
Separation Logic, does not target OO-languages specifically but applies to the more fundamental problem of reasoning about heap-allocated data.
jStar: Bringing separation logic to Java