自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Objective-C學(xué)習(xí)筆記相關(guān)教程

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

Objective-C學(xué)習(xí)筆記是本文要介紹的內(nèi)容,如前所述,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 + +的對象是靜態(tài)類型,運(yùn)行多態(tài)視作是例外情況。因此兩種語言的對象模型,無法直接兼容。更根本是,在Objective-C和C + +對象的內(nèi)存布局是相互矛盾的。

這意味著它是一般不可能創(chuàng)建一個(gè)從兩種語言的角度都有效的對象實(shí)例。因此,這兩個(gè)類型層次結(jié)構(gòu)不能被混合使用。

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

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

Objective-C允許C結(jié)構(gòu)(不論在Objective-C中聲明與否)作為實(shí)例變量。

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

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

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

  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 + +中,要求每個(gè)包含虛函數(shù)的類的實(shí)例包含一個(gè)合適的虛擬函數(shù)表的指針。然而,在Objective-C的運(yùn)行時(shí)不能初始化虛

函數(shù)表指針。因?yàn)樗幌馛++對象的模型,同樣,在Objective-C的運(yùn)行時(shí)不能要求派遣到C + +構(gòu)造函數(shù)或析構(gòu)這些對象中。如一個(gè)C + +類的任何用戶定義的構(gòu)造或析構(gòu)函

數(shù),他們不叫。編譯器會發(fā)出警告,在這種情況下。

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

Objective-C的類、協(xié)議和類別不能聲明在C + +模板中,也不能在一個(gè)Objective-C接口、協(xié)議或類別的范圍內(nèi)聲明一個(gè)c++模板。

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

小結(jié):Objective-C學(xué)習(xí)筆記的內(nèi)容介紹完了,希望本文對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-07-08 13:49:46

Objective-C UUID

2011-07-27 16:36:03

iphone Objective- 靜態(tài)庫

2011-08-15 16:09:44

Cocoa對象Objective-C

2011-07-22 15:42:39

Objective-C UIView 內(nèi)存

2011-08-04 16:46:03

Objective-C 聲明

2013-08-21 14:57:42

objective-c問題

2011-05-11 14:06:49

Objective-C

2011-08-04 11:04:14

Objective-C 面向?qū)ο? 繼承

2011-07-27 17:10:30

Objective-C 持久化

2011-08-04 10:38:17

Objective-C 預(yù)處理程序

2011-07-25 10:03:06

Objective-C 委托

2011-08-22 09:48:16

WindowsObjective-C

2011-07-25 14:27:10

Objective-C 協(xié)議 函數(shù)

2011-08-04 13:43:30

Objective-C 私有變量

2011-07-29 16:08:31

Objective-C 內(nèi)存

2011-07-25 10:14:13

Objective-C Xcode

2011-07-25 10:30:41

Objective-C Xcode 重構(gòu)

2011-07-25 11:02:29

Objective-C Xcode 標(biāo)簽
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號