你已经精通了Objective-C,并且一直想学更酷的东西?看看这篇文章吧!本文将向iOS开发者介绍C++。稍后我会介绍,Objective-C能够无缝地使用C和C++代码。因此,基于以下几点原因,iOS开发者理解C++将会很有帮助:
1.有时候你想在应用中使用一个用C++编写的库。
2.你可能用C++写一部分应用程序的代码,以便更容易跨平台移植。
3. 了解其他语言通常能帮助你更好地理解编程。
这篇文章针对那些已经理解Objective-C的iOS开发者。前提是假定你已明白怎么写Objective-C代码,并熟悉基本的C概念,比如类型、指针、函数等。
准备好学C++了么?那么就马上开始吧!
开始:语言简史
C++和Objective-C有一些共源:它们都根植于老式的好用的C语言,都是C语言的“超集”。因此,你可以在这两种语言中使用C语言的一些功能,和每种语言的附加特性。
如果你熟悉Objective-C,那么你将能粗略地理解你所遇到的C++代码。例如,两种语言中的数值类型(int型、float型和char型)的表现方式和使用规则都是完全一样的。
Objective-C和C++都在C语言基础上添加了面向对象的特征。如果你不熟悉“面向对象”,那么你真正需要明白的是面向对象指数据是由对象表示的,而对象是类的实例。事实上,C++最初称为“C with Classes”,内在的涵义是使C++面向对象。
“那么有什么区别么?”我听到了你的疑问。最大的区别是面向对象特性的方法。在C++中,很多行为是发生在编译时,而在Objective-C中,大多数是发生在运行时。你可能已经修改了Objective-C的运行时间来实现了一个类似method swizzling的诡计,而在C++中这是不可能的。
C++也不像Objective-C一样有大量内省以及映射方法。在C++中,没有办法获得C++对象的类,而在Objective-C中你可以在一个实例中调用“类”方法。同样的,在C++中也没有相当于isMemberOfClass或者isKindOfClass的类。
以上对C++的粗略介绍显示了C++和Objective-C的历史和主要不同点。历史部分已经完成了,到我们继续学习一些C++特征的时间了。
C++ 类
在任何面向对象语言中,首先你要知道的是如何定义一个类。在Objective-C中,你通过创建一个头文件和一个执行文件来定义一个类,在C++中同样如此,语法也十分相似 |
|