成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Objective-C學習筆記相關教程

移動開發 iOS
本文介紹的是Objective-C學習筆記,相信友們對于Objective-C不是很陌生了,那么先來看本文詳解。

Objective-C學習筆記是本文要介紹的內容,如前所述,C + +不會讓你從Objective-C對象繼承C + +類,也不讓你從C + +對象繼承Objective-C類。

  1. class Base { };  
  2. @interface ObjCClass: Base ... @end // ERROR!  
  3. class Derived: public ObjCClass ... // ERROR! 

不像Objective-C,在C + +的對象是靜態類型,運行多態視作是例外情況。因此兩種語言的對象模型,無法直接兼容。更根本是,在Objective-C和C + +對象的內存布局是相互矛盾的。

這意味著它是一般不可能創建一個從兩種語言的角度都有效的對象實例。因此,這兩個類型層次結構不能被混合使用。

你可以在一個聲明的Objective-C類中聲明一個C + +類。編譯器已被視為在全局命名空間中聲明這樣的類,如下:

  1. @interface Foo {  
  2.     class Bar { ... } // OK  
  3. }  
  4.  
  5. @end  
  6. Bar *barPtr; // OK 

Objective-C允許C結構(不論在Objective-C中聲明與否)作為實例變量。

  1. @interface Foo {  
  2.     struct CStruct { ... };  
  3.     struct CStruct bigIvar; // OK  
  4.  
  5. }  
  6. ...  
  7. @end 

Objective-C在做類似的努力,使C + +類的實例,作為實例變量。只要c++盡可能的沒有

虛擬成員函數的定義,只是問題(隨著它的超類的所有)之所在。如果任何虛擬成員函數存在, 在C + +類不得作為Objective-C的實例變量。

  1. #import <Cocoa/Cocoa.h> 
  2. struct Class0 { void foo(); };  
  3. struct Class1 { virtual void foo(); };  
  4. struct Class2 { Class2(int i, int j); };  
  5. @interface Foo : NSObject {  
  6.    Class0 class0;      // OK  
  7.     Class1 class1;      // ERROR!  
  8.     Class1 *ptr;        // OK—call 'ptr = new Class1()' from Foo's init,  
  9.     // 'delete ptr' from Foo's dealloc  
  10.     Class2 class2;      // WARNING - constructor not called!  
  11. }  
  12. …  
  13. @end 

C + +中,要求每個包含虛函數的類的實例包含一個合適的虛擬函數表的指針。然而,在Objective-C的運行時不能初始化虛

函數表指針。因為它不像C++對象的模型,同樣,在Objective-C的運行時不能要求派遣到C + +構造函數或析構這些對象中。如一個C + +類的任何用戶定義的構造或析構函

數,他們不叫。編譯器會發出警告,在這種情況下。

Objective-C中沒有一個嵌套的命名空間的概念。你不能在C + +命名空間聲明Objective - C類,也不能在申Objective -C類聲明命名空間。

Objective-C的類、協議和類別不能聲明在C + +模板中,也不能在一個Objective-C接口、協議或類別的范圍內聲明一個c++模板。

然而,Objective-C的類可以作為C + +模板參數。在Objective-C信息表達式中,C + +模板也可以作為接收器或參數使用(但不作為選擇器的參數)。

小結:Objective-C學習筆記的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-08-15 16:09:44

Cocoa對象Objective-C

2011-07-27 16:36:03

iphone Objective- 靜態庫

2011-07-08 13:49:46

Objective-C UUID

2011-08-04 16:46:03

Objective-C 聲明

2011-07-22 15:42:39

Objective-C UIView 內存

2011-05-11 14:06:49

Objective-C

2013-08-21 14:57:42

objective-c問題

2011-08-04 11:04:14

Objective-C 面向對象 繼承

2011-07-27 17:10:30

Objective-C 持久化

2011-08-04 10:38:17

Objective-C 預處理程序

2011-07-25 10:03:06

Objective-C 委托

2011-08-22 09:48:16

WindowsObjective-C

2011-08-04 13:43:30

Objective-C 私有變量

2011-07-25 14:27:10

Objective-C 協議 函數

2011-07-29 16:08:31

Objective-C 內存

2011-07-25 10:14:13

Objective-C Xcode

2011-07-25 10:30:41

Objective-C Xcode 重構

2011-07-25 11:02:29

Objective-C Xcode 標簽
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美一区二区三区国产精品 | 久久精品视频在线播放 | 中文字幕精品视频 | 国产精品福利在线 | 亚洲久久久 | 日本精品在线一区 | 99精品国产一区二区青青牛奶 | 91在线免费视频 | 亚洲一区二区精品视频 | 一区在线观看 | 亚洲欧洲精品一区 | 欧美在线资源 | 日韩a视频| 国产精品久久久久久吹潮 | 日韩精品一区二区三区在线 | 欧美激情视频一区二区三区在线播放 | 亚洲高清在线播放 | 国产日韩视频 | 欧美福利网站 | 日一区二区 | 在线观看成年视频 | 成人亚洲精品 | 91久久久久久久久久久久久 | www.国产精 | 国产99久久 | 国产精品美女久久久久aⅴ国产馆 | 丁香婷婷综合激情五月色 | 国产精品一区一区三区 | 神马久久春色视频 | 美国一级片在线观看 | 国产亚洲精品91 | 国产成人午夜高潮毛片 | 手机三级电影 | 亚洲高清一区二区三区 | 成人毛片网站 | 中文字幕免费观看 | 亚洲第一天堂 | 欧美成人一区二免费视频软件 | 亚洲福利一区二区 | 亚洲永久字幕 | 午夜精品网站 |