Objective-C
Objective-C を
http://wisdom.sakura.ne.jp/programming/objc/index.html
をみながら勉強したよ。
C言語をコンパイラディレクティブだけで拡張したのに C++ みたいなオブジェクト指向プログラムができるのは画期的だった。その技術はすごいと思う。だけれども、
[[MyClass new] print];
みたいに括弧の入れ子はちょっと腹立たしい。
#import <Foundation/NSObject.h> #import <stdio.h> @interface MyClass: NSObject { int status; } -(void)hello; -(void)getStatus; @end @implementation MyClass -(id)init { printf("now try to initialize\n"); status = 0; } -(void)hello { printf("hello world\n"); status = 1; } -(void)getStatus { printf("Now I'm in %d\n", status); } @end int main( void ) { id obj = [MyClass alloc]; [obj getStatus]; [[obj init] hello]; [obj getStatus]; [[MyClass new] hello]; return 0; }
みたいな。あとは、
gcc -framework Foundation hello.m
で、コンパイルできちゃうの。それはそれですごい。すべては Foundation/NSObject.h なんだもんな。プロトコルがいまいちわからん。