On Thu, Mar 20, 2008 at 11:33 AM, Christopher Nebel <[EMAIL PROTECTED]> wrote:
> On Mar 20, 2008, at 10:32 AM, Rob Napier wrote:
>
>  > Say you have a C++ object called MyObject in the namespace myapp
>  > that you want to access through your ObjC. What I tend to do is
>  > create an ObjC++ object called MyObjectWrapper that owns a
>  > myapp::MyObject and presents a pure ObjC interface to its methods.
>  > Users of MyObjectWrapper don't have to include MyObject.h. The trick
>  > is that you need to use void* rather than a real class type in
>  > MyObjectWrapper.h like this:
>  >
>  > typedef void* MyObjectPtr
>  >
>  > @interterface MyObjectWrapper : NSObject
>  > {
>  >   MyObjectPtr myObject;
>  > }
>  >
>  > That will get you around having C++ class definitions in your header.
>
>  Actually, you don't need the "void" typedef -- you can exploit the
>  fact that "class" and "struct" are (almost) synonymous in C++:
>
>         struct MyObject; // forward declaration.
>         typedef struct MyObject MyObject; // this is Objective-C, after all...
>
>         @interterface MyObjectWrapper : NSObject
>         {
>                 MyObject *myObject;
>         }

Or just forego the typedef altogether:

@interface MyObjectWrapper : NSObject
{
    struct MyObject *myObject;
}

-- 
Clark S. Cox III
[EMAIL PROTECTED]
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to