On Feb 23, 2011, at 5:34 PM, Charles Srstka wrote:
> On Feb 23, 2011, at 2:35 PM, James Bucanek wrote:
> 
>> It also occurred to me that if I'm careful, the Objective-C code doesn't 
>> really need any of the details of the instance variables in the 
>> Objective-C++ class:
>> 
>> @interface MyCPPClass : NSObject
>> {
>> #ifdef __cplusplus
>>   @private
>>   SomeCPPClass *someCppObject;
>> #endif
>> }
>> - (void)doSomething;
>> @end
> 
> Not a good idea. In the 32-bit runtime, this might cause problems with 
> subclassing due to the fragile base class problem.

Absolutely. That's why the next line in James' post was:

>> So if the C code never accesses any instance variables directly, or 
>> **defines a subclass of this class**, or calculate the size of the object, 
>> etc., then it should function just fine in complete ignorance of its 
>> internal structure.


Unfortunately, I can't think of a clever way to explicitly enforce "no non-C++ 
subclasses" by causing a compiler error or something.


-- 
Greg Parker     gpar...@apple.com     Runtime Wrangler


_______________________________________________

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 arch...@mail-archive.com

Reply via email to