在Objective-C中使用C++


Greeting.h

  1. #import <Foundation/Foundation.h>   
  2.   
  3. class Hello {   
  4. private:   
  5.     id greeting_text;   
  6. public:   
  7.     Hello() {   
  8.         greeting_text = @"Hello, world!";   
  9.     }   
  10.     Hello(const char *initial_greeting_text) {   
  11.         greeting_text = [[NSString alloc] initWithUTF8String:initial_greeting_text];   
  12.     }   
  13.     void say_hello() {   
  14.         printf("%s\n", [greeting_text UTF8String]);   
  15.     }   
  16. };   
  17.   
  18. @interface Greeting : NSObject {   
  19. @private   
  20.     Hello *hello;   
  21. }   
  22.   
  23. - (id)init;   
  24. - (void)dealloc;   
  25. - (void)sayGreeting;   
  26. - (void)sayGreeting:(Hello *)greeting;   
  27. @end  

Greeting.mm

  1. #import "Greeting.h"  
  2.   
  3. @implementation Greeting   
  4.   
  5. - (id)init {   
  6.     if (self = [super init]) {   
  7.         hello = new Hello();   
  8.     }   
  9.     return self;   
  10. }   
  11.   
  12. - (void)dealloc {   
  13.     delete hello;   
  14.     [super dealloc];   
  15. }   
  16.   
  17. - (void)sayGreeting {   
  18.     hello->say_hello();   
  19. }   
  20.   
  21. - (void)sayGreeting:(Hello *)greeting {   
  22.     greeting->say_hello();   
  23. }   
  24.   
  25. @end  

示例:

  1. Greeting *greeting = [[Greeting alloc] init];   
  2. [greeting sayGreeting];                            
  3.        
  4. Hello *hello = new Hello("Hello");   
  5. [greeting sayGreeting:hello];                     
  6.        
  7. delete hello;   
  8. [greeting release];  

主要是要注意类必须以mm结尾,否则无法编译。

免费下载地址在 http://linux.bkjia.com/

用户名与密码都是www.bkjia.com

具体下载目录在 /2012年资料/9月/2日/在Objective-C中使用C++

相关内容