zoukankan      html  css  js  c++  java
  • 从c++到ObjectiveC

    1. 头文件依然是.h
    2. .cpp变成了.m
    3. #import代替了#include,#import保证只会引用一次,相当于.h里的#ifndef #define #endif模式
    4. 用@interface … @end来声明类,取代class ClassName{}
    5. 用@implementation … @end来实现类
    6. Data Members放在@interface ClassName : Parent{ … }中,默认权限为@protected,在ObjC里称为Instance Variables
    7. Member Functions放在@interface ClassName: Parent{} … @end中,在ObjC里称为Instance Methods
    8. Instance Methods的声明方式为:scope (returnType) methodName: (parameter1Type) parameter1Name;
    9. scope分instance和class两种,分别用-和+表示
    10. 调用method的方式是[object method],相当于object->method()
    11. 带参数调用method的方式是[object method: parameter]
    12. 没有Object,只有Pointer to Object
    13. 通常的构造方式: Object * obj = [[Object alloc] init]
    14. 析构的方式:[obj release]15.多参数method的声明方式: scope (returnType) methodName: (parameter1Type) parameter1Name label1Name: (parameter2Type) parameter2Name … ;
    16. labelName不是必须的
    17. 这种特别的语法源自SmallTalk
    18. private: [list of vars] protected: [list of vars] public: [list of vars] 改成了@private, @protected, @public
    19. Class Variable用static的方法实现⋯⋯
    20. +(void) initialize 会在构造的时候被调用
    21. ObjC通常用@符号表示语言的衍生部分
    22. ObjC用id来表示范型对象的指针
    23. 支持动态类型识别
    24. Categories机制可用于不继承已有class的前提下加入新功能
    25. Posing机制允许Child取代Parent
    26. Protocol相当于pure virtual class
    27. ObjC由两种内存管理的方法,1) retain and release,2) retain and release/autorelease
    28. Foundation相当于STL,NSArray对应vector,NSDictionary对应map
    29. ObjC不支持Namespace
    30. 不支持重载

  • 相关阅读:
    ES6笔记
    JavaScriptOOP (三)
    JavaScriptOOP(二)
    JavaScriptOOP(一)
    基于vue-cli 将webpack3 升级到 webpack4 配置
    JavaScript 中 call,apply 和 bind
    vue 2.6 更新变动
    JavaScript严格模式
    vue 修饰符 整理
    webpack打包将配置文件单独抽离不压缩打包
  • 原文地址:https://www.cnblogs.com/chen1987lei/p/1682471.html
Copyright © 2011-2022 走看看