作者yckang (寂寞秋江一夜霜)
看板MacDev
標題[問題] 型別變換的問題
時間Tue Nov 19 02:10:12 2013
最近開始接觸 Objective-C ,書中提到型別變換時,用了一個例子,
我不是很明白他的意思,例子如下:
id myNumber;
Fraction *myFraction;
....
....
....
myFraction = (Fraction *) myNumber;
第一行宣告 myNumber 這個變數的型態是 id
第二行宣告 參照 Fraction 這個類別產生 myFraction 這個物件
中間略過
最後這一行我不是很懂他的意思,
看起來是把 myFraction 這個物件的值指定為 myNumber
但物件的值這樣指定的意思是?
再者等號的右邊把 myNumber 的型態由 id 轉為 Fraction *
但這例子中我無法理解 Fraction * 這個型態指的是什麼?
麻煩各位網友解惑,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.80.24
1F:→ Piceman:就只是某種物件..你可以把它換成UIView * 或其他物件 11/19 02:25
2F:→ yr:Fraction * 就是一個指向 Fraction 的 pointer 11/19 03:33
3F:→ yckang:這麼說來最後一行是宣告myFraction這個物件等於myNumber這 11/19 09:46
4F:→ yckang:個物件,讓一個物件等於另外一個物件? 11/19 09:46
5F:推 Blueshiva:最後一行是指定一個pointer指向另一個pointer所指的物件 11/19 10:09
6F:推 tom19830924:id是任何形態的物件 從NSObject的init就可以看到 11/19 10:18
7F:→ tom19830924:最後一行就如上面講的 只是pointer給予另一個物件 11/19 10:18
8F:→ tom19830924:(Fraction *)可以想成你說的轉型 不寫通常也不會怎樣 11/19 10:19
9F:→ tom19830924:通常轉型都是is-a關係 只要不要搞混上下層關係就好 11/19 10:20