(a) void foo() { const Foo* fp = new Foo; // ... delete fp; } (b) void foo() { const Foo f; // ... } (c) void bar(const Foo* fp) { // ... delete fp; } (d) void bar(const Foo* fp) { // ... fp->~Foo(); }