• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: using C++ with Cocoa
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: using C++ with Cocoa


  • Subject: Re: using C++ with Cocoa
  • From: Oscar Morales Vivo <email@hidden>
  • Date: Thu, 24 May 2007 11:20:46 -0400

It's a warning you can safely ignore if you know what you're doing.

If you just want to kill the warnings and you're not going to use all those 'magic' methods, something like the following would be advised in your C++ class:


class MyCPPClass { public: [...] protected: [...] private: MyObjCClass* ObjCDataMember;

//	Undefined methods.
MyCPPClass(const MyCPPClass&);
MyCPPClass& operator=(const MyCPPClass&);
};

Don't define them (the linker won't complain since it's a sanctioned technique for specifying that you want no stinking copy constructor or assignment operator for your class).

You probably can find more information about this technique elsewhere, it's pretty common and certainly not unique to dealing with Obj-C++.

On May 24, 2007, at 9:25 AM, Frank Weinstock wrote:

I have a Cocoa project going and, for various reasons, need to add a number of C++ class (and I'm a newbie with C++). Those classes need to refer to Cocoa objects, which of course come in the form of pointers. But when I use pointers as data members in C++, Xcode gives me the warning (actually 3 warnings): "class ClassName has pointer data members but does not override 'ClassName(const ClassName&)' or 'operator= (const ClassName&)' " (where ClassName is, of course, the class I am defining). I know how to override ClassName(const ClassName&), but I have no idea how to override operator= (const ClassName&)', or what that even means in this context.

I know the whole thing could be avoided by using C++ references instead of pointers, but in this case I can't do that because the data is not available when the class is first created. Also, I know that warnings are not the end of the world, but I'd rather get rid of them if possible...

Thanks for any ideas!

Best,
Frank
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: using C++ with Cocoa
      • From: Kaelin Colclasure <email@hidden>
References: 
 >using C++ with Cocoa (From: Frank Weinstock <email@hidden>)

  • Prev by Date: using C++ with Cocoa
  • Next by Date: abstract class
  • Previous by thread: using C++ with Cocoa
  • Next by thread: Re: using C++ with Cocoa
  • Index(es):
    • Date
    • Thread