Chapter 8 :动态绑定和id类型

1. 示例代码:

 1 // 用到的类请参照前面的笔记
 2 
 3 // 两个类中都含有print方法
 4 #import "Fraction.h"
 5 #import "Complex.h"
 6 
 7 int main(int argc, const char *argv[])
 8 {
 9     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
10 
11     Fraction  *f = [[Fraction alloc] init];
12     Complex *c = [[Complex alloc] init];
13 
14     // 声明dataValue为id类型
15     id dataValue;
16 
17     // 对对象的成员变量赋值
18     [f setTo:2 over:5];
19     [c setReal:10.0f andImaginary:2.5f];
20    
21     // 动态绑定后调用Fraction的print方法
22     dataValue = f;
23     [dataValue print];
24   
25     // 动态绑定后调用Complex的print方法
26     dataValue = c;
27     [dataValue print];
28 
29     [f release];
30     [c release];
31 
32     [pool drain];
33 
34     return 0;
35 }

 

 

 

posted on 2012-09-28 11:06  BankFish  阅读(127)  评论(0编辑  收藏  举报