<b>(a)</b> void foo() { const Foo* fp = new Foo; // ... delete fp; } <b>(b)</b> void foo() { const Foo f; // ... } <b>(c)</b> void bar(const Foo* fp) { // ... delete fp; } <b>(d)</b> void bar(const Foo* fp) { // ... fp->~Foo(); }
Example 1: (a) Good code; (b) more good code; (c) good, but dubious code; (d) yet more good, dubious code.
Copyright © 1999, Dr. Dobb's Journal