Objective-C + NSObject
ついさっきまで、なぜ Objective-C では、NSObject や Object を 常に継承しなければいけないのかナーと思っていた。
が、どうやら言語の仕様上の問題のようだ。
すべてのクラスは、ルートクラス(すなわちNSObjectやObject)を継承しなければ、 オブジェクトとして振る舞うことが出来ない。 (参照:詳解 Objective-C 2.0)
なるほどねー。納得しました。
Objective-C は、かなり動的なことが出来るようで、以下の様なことも出来てしまう。 (先日作成したクラスを流用)
id foo =[Hoge class];
id var =[[foo alloc] init_x:10 _y:20];
printf("x:%d\n",[var getX]);
printf("y:%d\n",[var getY]);
return0;
C++よりも柔軟性が高いのはたしかだなー。