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结尾,否则无法编译。
分享到:
相关推荐
1. **代码复用**:如果你有一个C++库,你可以直接在Objective-C项目中使用,无需重写。 2. **性能提升**:C++代码通常比Objective-C更快,因为它在编译时就确定了类型,而Objective-C是动态类型的。 3. **复杂数据...
此外,可能会对比两种语言的类系统,解释如何在Objective-C中使用C++代码,以及如何在C++项目中集成Objective-C。 通过阅读这三本书,读者将全面了解Objective-C的各个方面,从基础语法到高级特性和最佳实践。无论...
18. Objective-C与C/C++的混合编程:Objective-C与C语言兼容,因此可以轻松地在Objective-C程序中使用C代码。同时,它也能够与C++代码进行交互,但需要遵守特定的规则和约定。 19. Import指令:在Objective-C中,@...
在实际开发中,Objective-C通常与Cocoa框架一起使用,以便利用其丰富的API来快速构建应用程序。 #### 二、Objective-C的关键概念 **2.1 类的实现** - **类的设计**:Objective-C中的类设计非常灵活,支持单继承,...
Objective-C在早期版本中使用引用计数机制来进行内存管理,而C++则依赖于手动管理内存(例如使用new和delete)。Objective-C 2.0引入了垃圾回收机制,但并未在所有平台上启用。在iOS开发中,ARC (Automatic ...
在描述中提到的Pierre Chatelier所写的文章详细比较了C++和Objective-C的不同,并且深入到Objective-C的内部机制。文章以英文版本发表,并且有法语版本可供参考。文中对一些主题的深入探讨对于那些从C++转向...
C++11也引入了类似的概念,但Objective-C的Block在语法和使用上有所不同。 6. Foundation框架:Objective-C的基础库Foundation框架提供了许多核心的类和功能,如NSArray、NSDictionary等容器类,以及NSString、...
首先,Objective-C是一种主要在苹果公司产品开发中使用的编程语言,被视为MacOSX和iOS平台上的“唯一”开发语言。Objective-C的开发教程很多直接从该语言基础讲起,但作者DevBean认为对于有其他编程语言基础的开发者...
Objective-C语法的基石是C语言的语法结构,这意味着所有的C语言代码都可以在Objective-C中直接使用。但是,Objective-C在C的基础上新增了消息传递机制,这是它与C语言的一个重要区别。在Objective-C中,方法调用是...
在C、C++和Objective-C这三种语言混合编程时,头文件管理成为一个关键问题,特别是在Xcode这样的集成开发环境中。由于Objective-C++是Objective-C和C++的融合,它可以处理C和C++的代码,因此将文件扩展名改为.mm可以...
- **封装C/C++库**: 通过Objective-C的桥接机制,可以轻松地将现有的C/C++库封装成Objective-C的类或框架,从而方便地在iOS应用中使用。 #### 六、Objective-C的未来展望 尽管Swift已经成为iOS开发的新宠,但...
7. **Objective-C++混合编程**:在某些情况下,开发者可能需要在Objective-C项目中使用C++代码,本教程将解释如何在同一个项目中同时使用两种语言,并处理二者的互操作性问题。 8. **Objective-C与C++的模板对比**...
在Objective-C的编程实践中,使用#import指令来导入头文件,它类似于C++中的#include指令。导入的头文件可以是尖括号中的系统库,也可以是双引号中的自定义文件路径。在使用对象之前,通常需要先创建一个自动释放池...
而那些有着C++或Java语言背景的开发者,在学习Objective-C时,只需要重点掌握Objective-C的独特概念和语法结构,因为面向对象的基本概念和C语言知识会在学习过程中起到很大的帮助作用。 通过阅读这份文档,学习者将...
Objective-C由苹果公司在其操作系统macOS和iOS的开发中广泛使用,是这两个平台上应用程序开发的主要语言之一。它的设计旨在提供更好的性能和灵活性,同时保持面向对象编程的优点。 #### 二、Objective-C的基本语法 ...
Objective-C 是一种面向对象的编程语言,它是C++的一个扩展,尤其在苹果的开发环境中广泛使用。本篇文章主要关注Objective-C的核心语法,旨在帮助已经熟悉C++的开发者快速上手。 Objective-C 的语法中,类的定义和...
本次整理的“Objective-C经典面试题”中的知识点,主要针对C语言中的指针概念、Objective-C语言的数组和指针操作、宏定义及使用、预处理器指令的应用、内存分配与释放、以及Objective-C中委托(Delegation)和字符串...
在iOS和macOS开发中,Objective-C和C++的混合编程是常见的需求,尤其是在需要利用C++的强大性能或已有的C++库时。本篇文章将详细介绍如何在Xcode项目中集成C++,使得Objective-C代码能够顺利调用C++的代码。 首先,...