Objective-C 和C++的比较
来源:互联网 发布:java在线api中文文档 编辑:程序博客网 时间:2024/04/28 12:40
1. 最大的相同:都是从c演化过来的面向对象语言。
2. 最大的不同:c++是静态语言,而OC是动态类型识别语言?OC提供了运行期动态绑定机制。
OC里,把消息发到一个对象上,如果对象不能处理此消息,也无所谓。
而c++中,则会crash.
3. 继承:OC不支持多重继承。
4. 4, 函数名字解析也不同, Objective C 的函数名字解析是函数名称 + 参数名称的, 而 C++ 只包括函数名称. 因此在 Objective C 中以下是合法的,因为两者解析出来分别类似于 foo:bar1 和 foo:bar2, 是不同的;
-(int)foo:(int) bar1;
-(char*)foo:(int) bar2;
而在 C++ 中以下是非法的, 编译将出错, 因为两者解析出来都是类似于 foo:int, 编译器无法辨别.
int foo(int bar1);
char* foo(int bar2);
5, Objective-C 没有 C++ 里有的构造函数和析构函数, 其对应物为 alloc-init/free .
6, Objective-C 2.0 了加入了垃圾回收机制(在 iPhone 和 iPad 上不可用), 而 C++ 没有.
7, Objective-C 不允许在 Stack 上分配内存, 只能在 heap 上进行, 而 C++ 两者都允许.
8, Objective-C 不支持引用, 而 C++ 支持.
9, Objective-C 不支持模板, 而 C++ 支持.
10, Objective-C 是 Smalltalk 系的, 而 C++ 是 Simula 系的.
可以这么说 Objective-C 在 C 之上进行了一层简单的包装, 而 C++ 在 C++ 之上进行了复杂的包装, 但 Objective-C 让人感觉更优雅简洁.
- Objective-C 和C++的比较
- Objective-C 和C++的比较
- objective-c和java,C++的比较
- Java 和 Objective C 比较
- 比较C/C++和Objective-C的内存管理机制
- Objective-C中继承和类别的比较
- Objective C与C++的可读性比较
- C++, Objective C, Java, C# 详细比较和区别
- C++, Objective C, Java, C# 详细比较和区别
- “Hello, world" 粗略比较 C语言和Objective-C的区别
- Objective C 和 C
- Objective-C 和 C的对比
- 【Objective-C】objective-c的环境和helloworld
- objective-c与C++比较
- Objective-C中的字符串比较
- Objective-C 中的字符串比较
- 初学objective-c (二) 比较C und objective-c
- objective-c 中字符串与日期转换和比较
- MooseFS 分布式文件系统应用
- 深入理解Android消息处理系统——Looper、Handler、Thread
- 初学Java多线程:线程的生命周期
- 初学Java多线程:join方法的使用
- 初学Java多线程:慎重使用volatile关键字
- Objective-C 和C++的比较
- 初学Java多线程:向线程传递数据的三种方法
- 十五道关于Hibernate的面试题
- 初学Java多线程:从线程返回数据的两种方法
- EasyUI easyloader.js分析
- 电子证书 DER vs. CRT vs. CER vs. PEM
- 初学Java多线程:使用Synchronized关键字同步类方法
- 源码安装Apache apr错误
- 互斥对象锁和临界区锁性能比较