- 1 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 17:21:46.39 ]
- Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
(Wikipedia:ja.wikipedia.org/wiki/Objective-C より) Objective-C [ObjC part:6]; toro.2ch.net/test/read.cgi/tech/1313891268/ Objective-C [ObjC part:5]; hibari.2ch.net/test/read.cgi/tech/1279730299/ Objective-C [ObjC part:4]; pc12.2ch.net/test/read.cgi/tech/1239721860/ Objective-C [ObjC part:3]; ttp://pc12.2ch.net/test/read.cgi/tech/1186543111/ Objective-C ttp://pc11.2ch.net/test/read.cgi/tech/1106983092/ Objective-C ttp://pc5.2ch.net/tech/kako/990/990574267.html
- 85 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 01:26:59.83 ]
- >>84
Objective-Cに限らず、オブジェクト指向言語は基本そうだよ メソッド名が同じの場合、引数の数がちがうか、引数の型がちがってなければいけない まあ、Objective-Cの場合は、引数の数が違うと:の数も違うから、 メソッド名(セレクタ)も異なってくるけどね
- 86 名前:>>85の訂正 mailto:sage [2012/03/28(水) 01:40:20.42 ]
- ごめん
Objective-Cは基本的にメソッドオーバーロードはできないわ あくまでセレクタが異なってる必要がある Objective-Cの仕様上、引数の数が違う場合は:の数が異なるので これを他のOOPにおけるメソッド名が同じで引数の個数が違う メソッドオーバーロードと同じとみなせば、 これに限っては事実上できることにはなる
- 87 名前:>>85の訂正 mailto:sage [2012/03/28(水) 01:51:04.53 ]
- たとえばこんなの
- (void) setValue:(int) arg_x : (int) arg_y : (int) arg_z; - (void) setValue:(int) arg_x : (int) arg_b; 上のメソッドのセレクタは@selector(setValue:::) 下のメソッドのセレクタは@selector(setValue::) ただ、普通は - (void) setValueWithX: (int) arg_x Y: (int) arg_y Z: (int) arg_z; - (void) setValueWithX: (int) arg_x Y: (int) arg_b; のような感じで各引数のキーワードを入れこんで命名するから 上のメソッドのセレクタは@selector(setValueWithX:Y:Z:) 下のメソッドのセレクタは@selector(setValueWithX:Y:) のように明らかにセレクタが違う感じになる なので、結局メソッド名が同じメソッドをオーバロードしていないという ことがよくわかると思う
- 88 名前:>>85の訂正 mailto:sage [2012/03/28(水) 01:52:04.54 ]
- あー、我ながらわかりにくい説明w
- 89 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 02:49:23.54 ]
- ていうか>>81はオーバーロードですらないじゃん
|

|