`
jsntghf
  • 浏览: 2558523 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

在Objective-C中使用C++

    博客分类:
  • iOS
阅读更多

Greeting.h

 

#import <Foundation/Foundation.h>

class Hello {
private:
	id greeting_text;
public:
	Hello() {
		greeting_text = @"Hello, world!";
	}
	Hello(const char *initial_greeting_text) {
		greeting_text = [[NSString alloc] initWithUTF8String:initial_greeting_text];
	}
	void say_hello() {
		printf("%s\n", [greeting_text UTF8String]);
	}
};

@interface Greeting : NSObject {
@private
	Hello *hello;
}

- (id)init;
- (void)dealloc;
- (void)sayGreeting;
- (void)sayGreeting:(Hello *)greeting;
@end
 

Greeting.mm

 

#import "Greeting.h"

@implementation Greeting

- (id)init {
    if (self = [super init]) {
        hello = new Hello();
    }
    return self;
}

- (void)dealloc {
    delete hello;
    [super dealloc];
}

- (void)sayGreeting {
    hello->say_hello();
}

- (void)sayGreeting:(Hello *)greeting {
    greeting->say_hello();
}

@end

 

示例:

 

Greeting *greeting = [[Greeting alloc] init];
[greeting sayGreeting];                         
	
Hello *hello = new Hello("Hello");
[greeting sayGreeting:hello];                  
	
delete hello;
[greeting release];

 

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

分享到:
评论

相关推荐

    Objective-C与Objective-C++的混用代码示例

    1. **代码复用**:如果你有一个C++库,你可以直接在Objective-C项目中使用,无需重写。 2. **性能提升**:C++代码通常比Objective-C更快,因为它在编译时就确定了类型,而Objective-C是动态类型的。 3. **复杂数据...

    Objective-C专业书籍汇总pdf

    此外,可能会对比两种语言的类系统,解释如何在Objective-C中使用C++代码,以及如何在C++项目中集成Objective-C。 通过阅读这三本书,读者将全面了解Objective-C的各个方面,从基础语法到高级特性和最佳实践。无论...

    Objective-C基础教程(入门教程).pdf

    18. Objective-C与C/C++的混合编程:Objective-C与C语言兼容,因此可以轻松地在Objective-C程序中使用C代码。同时,它也能够与C++代码进行交互,但需要遵守特定的规则和约定。 19. Import指令:在Objective-C中,@...

    From C++ to Objective-C(中文版)

    在实际开发中,Objective-C通常与Cocoa框架一起使用,以便利用其丰富的API来快速构建应用程序。 #### 二、Objective-C的关键概念 **2.1 类的实现** - **类的设计**:Objective-C中的类设计非常灵活,支持单继承,...

    From C++ To Object-C(中文版

    Objective-C在早期版本中使用引用计数机制来进行内存管理,而C++则依赖于手动管理内存(例如使用new和delete)。Objective-C 2.0引入了垃圾回收机制,但并未在所有平台上启用。在iOS开发中,ARC (Automatic ...

    From C++ to Objective-C (从C++到ObjectivC)

    在描述中提到的Pierre Chatelier所写的文章详细比较了C++和Objective-C的不同,并且深入到Objective-C的内部机制。文章以英文版本发表,并且有法语版本可供参考。文中对一些主题的深入探讨对于那些从C++转向...

    从 C++ 到 Objective-C 快速精通

    C++11也引入了类似的概念,但Objective-C的Block在语法和使用上有所不同。 6. Foundation框架:Objective-C的基础库Foundation框架提供了许多核心的类和功能,如NSArray、NSDictionary等容器类,以及NSString、...

    From C++ to Objective-C

    首先,Objective-C是一种主要在苹果公司产品开发中使用的编程语言,被视为MacOSX和iOS平台上的“唯一”开发语言。Objective-C的开发教程很多直接从该语言基础讲起,但作者DevBean认为对于有其他编程语言基础的开发者...

    Objective-C的语法与Cocoa框架.pdf

    Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...

    c c++ objective-c 混合编程 头文件问题

    在C、C++和Objective-C这三种语言混合编程时,头文件管理成为一个关键问题,特别是在Xcode这样的集成开发环境中。由于Objective-C++是Objective-C和C++的融合,它可以处理C和C++的代码,因此将文件扩展名改为.mm可以...

    objective-c基础教程

    - **封装C/C++库**: 通过Objective-C的桥接机制,可以轻松地将现有的C/C++库封装成Objective-C的类或框架,从而方便地在iOS应用中使用。 #### 六、Objective-C的未来展望 尽管Swift已经成为iOS开发的新宠,但...

    From C++ to Objective-C version:1.11

    7. **Objective-C++混合编程**:在某些情况下,开发者可能需要在Objective-C项目中使用C++代码,本教程将解释如何在同一个项目中同时使用两种语言,并处理二者的互操作性问题。 8. **Objective-C与C++的模板对比**...

    Objective-C培训教程

    在Objective-C的编程实践中,使用#import指令来导入头文件,它类似于C++中的#include指令。导入的头文件可以是尖括号中的系统库,也可以是双引号中的自定义文件路径。在使用对象之前,通常需要先创建一个自动释放池...

    Learn Objective-C中文版.pdf

    而那些有着C++或Java语言背景的开发者,在学习Objective-C时,只需要重点掌握Objective-C的独特概念和语法结构,因为面向对象的基本概念和C语言知识会在学习过程中起到很大的帮助作用。 通过阅读这份文档,学习者将...

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    Objective-C由苹果公司在其操作系统macOS和iOS的开发中广泛使用,是这两个平台上应用程序开发的主要语言之一。它的设计旨在提供更好的性能和灵活性,同时保持面向对象编程的优点。 #### 二、Objective-C的基本语法 ...

    Objective-C语言核心语法

    Objective-C 是一种面向对象的编程语言,它是C++的一个扩展,尤其在苹果的开发环境中广泛使用。本篇文章主要关注Objective-C的核心语法,旨在帮助已经熟悉C++的开发者快速上手。 Objective-C 的语法中,类的定义和...

    Objective-C经典面试题

    本次整理的“Objective-C经典面试题”中的知识点,主要针对C语言中的指针概念、Objective-C语言的数组和指针操作、宏定义及使用、预处理器指令的应用、内存分配与释放、以及Objective-C中委托(Delegation)和字符串...

    Objective-C在XCode上调用C++的代码

    在iOS和macOS开发中,Objective-C和C++的混合编程是常见的需求,尤其是在需要利用C++的强大性能或已有的C++库时。本篇文章将详细介绍如何在Xcode项目中集成C++,使得Objective-C代码能够顺利调用C++的代码。 首先,...

Global site tag (gtag.js) - Google Analytics