<p>Currently, my Objective C classes use C++ objects by doing a <code>new</code> when the owner is created, and calling <code>delete</code> when it is destroyed. But is there another way? I'd like to be able to declare, say, an <code>auto_ptr</code> whose scope lasts the duration of the Objective C class' lifetime.</p>

Ok, let me assume you are using C++ and Objective-C on a Mac, if I'm right you are likely using X-code. So if you go to the properties (info) of your project. You can check the compile options (GCC's). In there, there is an option to enable C++ constructors/destructors (which is turned off by default in Cocoa projects).
Then you get default-like C++ scoping, however I haven't used it much and I've had problems with heavily template code (Boost).
Also I don't think anyone officially supports this besides some good souls working on GCC. So I'd recommend that you unit test anything like this, and keep note that anything could go wrong.
Nevertheless being able to use C++ in objective-C, for me as a C++ person, is a relief and the risks are worth the benefits :)