パスワードを忘れた? アカウント作成
746779 journal

juanの日記: Obj-C

日記 by juan

んーと、C++とかだと、クラス fooのオブジェクトを生成するには

foo *hoge = new foo;
とかだけど、Objective-Cでは
foo *hoge = [foo alloc];
みたいに書く。C++だと「新しい fooクラスのオブジェクトを作る」って感じだけど、Obj-Cだと「fooクラスに対して、新しいオブジェクトの生成を命じる」って感じかなあ。

オブジェクトではなくクラスそのものにメッセージを送るっていうのは僕には最初なんだか不思議だった。「クラスはオブジェクトのひな形」って覚えてたから、あくまでなにか動作する実体はオブジェクトであってクラスではないという気持ちがあったわけ。何しろ最初にC++の本を読んだ時は、オブジェクトを生成する度に、メソッドなどのバイナリコードそのものがメモリ上に複製されるような気がしてたもん。「オブジェクト指向って、なんて無駄遣いをするんだ」とか思った事は内緒だ(笑)。

NSString *tmpStr = [NSString stringWithCString:"hogehoge"];
とかを見て、ああ、クラスメソッドってこういうことかと納得。
物を知らないと言う事は、常に新鮮な発見があるということですね(笑)

typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...