object C Óï·¨
XCode£ºÄã¿ÉÒÔ°ÑËü¿´³ÉÊÇÒ»¸ö¿ª·¢»·¾³£¬¾ÍºÃÏñVisual Studio»òÕßNetbeans»òÕßSharpDevelopÒ»ÑùµÄÍæ
Òâ¡£Äã¿ÉÒÔ½«Interface BuilderÈÏΪÊÇVisual StudioÖÐÓÃÀ´»½çÃæµÄÄDz¿·Ö¹¦Äܵ¥¶ÀÌá³öÀ´µÄ³ÌÐò¡£
Objective-C£ºÕâÊÇÒ»ÖÖÓïÑÔ£¬¾ÍºÃÏñc++ÊÇÒ»ÖÖÓïÑÔ£¬JavaÊÇÒ»ÖÖÓïÑÔ£¬c#ÊÇÒ»ÖÖÓïÑÔ£¬Ýº¸èÀúÊ·Ò²ÊÇÒ»
ÖÖÓïÑÔÒ»Ñù¡£
Cocoa£ºÊÇÒ»´ó¶Ñº¯Êý¿â£¬¾ÍºÃÏñMFC¡¢.NET¡¢SwingÕâÀàÍæÒ⣬È˼ÒÒѾдºÃÁËÒ»¶ÑÏֳɵĶ«Î÷£¬ÄãÖ»Òª
ÖªµÀÔõôÓþͿÉÒÔÁË¡£
¼õºÅ±íʾһ¸öº¯Êý¡¢»òÕß·½·¨¡¢»òÕßÏûÏ¢µÄ¿ªÊ¼
À¨ºÅ¿ÉÒÔÈÏΪÊÇÈçºÎµ÷ÓÃÄã¸Õ²ÅдµÄÕâ¸ö·½·¨£¬Í¨³£ÔÚObjective-CÀï˵“ÏûÏ¢”¡£
ͬһ¸öÊý×é¿ÉÒÔ±£´æ²»Í¬µÄ¶ÔÏó
CÓÃNULL,OCÓÃnil
Objective-C ÓÐÖÖ½Ð×ö id µÄÐͱð£¬ËüµÄÔË×÷ÓÐʱºòÏñÊÇ void*£¬²»¹ýËüÈ´Ñϸñ¹æ¶¨Ö»ÄÜÓÃÔÚ¶ÔÏó¡£
»ù±¾Àà±ð¿â import NSObject.h£»BOOLÐÍΪYES or NO
#import vs #include£º#import¡£#import ÓÉ gcc ±àÒëÆ÷Ö§³Ö¡£ÎÒ²¢²»½¨ÒéʹÓà #include£¬#import »ù
±¾Éϸú .h µµÍ·Î²µÄ #ifndef #define #endif Ïàͬ¡£
Objective-C µÄÔ¤ÉèÀ©Õ¹ÃûÊÇ .m
Àࣺ@interface... @end
Implementation ÒÔ @implementation ClassName ¿ªÊ¼£¬ÒÔ @end ½áÊø£¬ÓÃÀ´¶¨ÒåÀàÀïµÄº¯Êý
¼Ì³Ð£¨inheritance£©ÒÔ Class: Parent ±íʾ£¬¾ÍÏñÉÏÃæµÄ Fraction: NSObject
ÔÚ Objective-C Öкô½Ð methods µÄ·½·¨ÊÇ [object method]£¬¾ÍÏñ C++ µÄ object->method()
[object init] ÊÇÒ»¸ö½¨¹¹×Ó£¨constructor£©ºô½Ð£¬¸ºÔð³õʼ»¯¶ÔÏóÖеÄËùÓбäÁ¿¡£
[frac setNumerator: 1] ·Ç³£¼òµ¥¡£Ëüºô½ÐÁË frac É쵀 setNumerator method ²¢´«Èë 1 Ϊ²ÎÊý
Objective-C Ò²ÓÐÒ»¸öÓÃÒÔÊÍ·ÅÄÚ´æµÄ·½Ê½£º release
´«µÝ¶àÖØ²ÎÊýÓÃset..and£º[frac2 setNumerator: 1 andDenominator: 5]£»µ¥ÖØÊ±Ö»ÓÃset
¼ÓÈëÆäËü²ÎÊýµÄ·½·¨¾Í¸ú¼ÓÈëµÚ¶þ¸öʱһÑù£¬¼´ method:label1:label2:label3: £¬¶øºô½ÐµÄ·½·¨ÊÇ obj
method: param1 label1: param2 label2: param3 label3: param4]
½¨¹¹×Ó£¨Constructors£©
@interface ÀïµÄÐû¸æ¾ÍÈçͬÕý³£µÄº¯Ê½
@implementation ʹÓÃÁËÒ»¸öеĹؼü´Ê£ºsuper
ʹÓà [super init] À´´æÈ¡ Super constructor£¬Õâ¸ö¶¯×÷ÐèÒªÊʵ±µÄ¼Ì³ÐÉè¼Æ
´æÈ¡È¨ÏÞ
Ô¤ÉèµÄȨÏÞÊÇ @protected
¾ÍÏñ C++ ÖÐ private: [list of vars] public: [list of vars] µÄ¸ñʽ£¬ËüÖ»ÊǸijÉÁË@private,
@protected, µÈµÈ
Class level access
static int count = 0; ÕâÊÇ cla
Ïà¹ØÎĵµ£º
1.3 µ¥Ôª²âÊÔÄܲúÉúÄÄÐ©Ð§Òæ£¿
µ¥Ôª²âÊÔµÄÐ§ÒæÒѾµÃµ½¹ã·ºµÄÈÏͬ£¬ÏÖÔÚµÄÎÊÌâÒѾ²»ÊÇÓÐûÓбØÒª×ö£¬Öµ²»ÖµµÃ×ö£¬¶øÊÇÈçºÎ¶à¿ìºÃÊ¡µØ×öºÃµ¥Ôª²âÊÔ£¬ËùÒÔ£¬¹ØÓÚÐ§Òæ£¬ÕâÀïÖ»ÊǼòµ¥µÄ½éÉÜһϡ£
Ð§ÒæÒ»£¬±£Ö¤´úÂëÖÊÁ¿
Ö»Óе¥Ôª²âÊÔ²ÅÄÜÍêÕû¼ì²â´úÂëµ¥ÔªµÄ¹¦Ä ......
extern "C"
Ŀ¼
¸ÅÊö ±àÒ뷽ʽ ϰ¹ßÓ÷¨
¸ÅÊö
¡¡¡¡extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵Ä
¡¡¡¡externÊÇC/C++ÓïÑÔÖбíÃ÷º¯Ê ......
±¾ÎĹؼü´Ê£º c++ º¬Òå
1.ÒýÑÔ
C++ÓïÑԵĴ´½¨³õÖÔÊÇ“a better C”£¬µ«ÊÇÕâ²¢²»Òâζ×ÅC++ÖÐÀàËÆCÓïÑÔµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýËù²ÉÓõıàÒëºÍÁ¬½Ó·½Ê½ÓëCÓïÑÔÍêÈ«Ïàͬ¡£×÷ΪһÖÖÓûÓëC¼æÈݵÄÓïÑÔ£¬C++±£ÁôÁËÒ»²¿·Ö¹ý³ÌʽÓïÑÔµÄÌØµã£¨±»ÊÀÈ˳ÆÎª“²»³¹µ×µØÃæÏò¶ÔÏ󔣩£¬Òò¶øËü¿ÉÒÔ¶¨Òå²»ÊôÓÚÈκÎÀ ......
¶ÔÓÚC±àд³ÌÐò£¬´ó²¿·Ö¶¼¿ÉÒÔͨ¹ý£¬µ«ÊDz»»áÍêÈ«¼æÈÝ£¬¾ÙÁ½¸öÀý×Ó£º
1.
char *str;
str = malloc(32);
2.
char ch[3] = "abc";
gcc -g -o test test.c
g++ -g -o test test.c
ÒòΪC++¼ì²é¸ü¼ÓÑϸñ£¬CûÓÐÕâôÑϸñ¡£
´ó¼Ò¿ÉÒԱȽÏһϣ¬gcc²»»á±¨´í£¬g++»á±¨´í¡£
Èç¹û´ó¼Ò»¹ÓÐеÄcase,»¶Ó ......
1.´«Í³ÉÏ£¬CÓïÑÔÒªÇó±ØÐëÔÚÒ»¸ö´úÂë¿éµÄ¿ªÊ¼´¦ÉùÃ÷±äÁ¿£¬ÔÚÕâ֮ǰ²»ÔÊÐíÈÎºÎÆäËûÓï¾ä¡£ÏÖÔÚC99×ñÑC£«£«µÄ¹ßÀý£¬ÔÊÐí°ÑÉùÃ÷·ÅÔÚ´úÂë¿éÖеÄÈκÎλÖá£È»¶ø£¬ÔÚÊ×´ÎʹÓñäÁ¿Ö®Ç°ÈÔÈ»±ØÐëÏÈÉùÃ÷Ëü¡£
2.²Ù×÷ϵͳºÍC¿âͨ³£Ê¹ÓÃÒÔÒ»¸ö»òÁ½¸öÏ»®Ïß¿ªÊ¼µÄÃû×Ö£¬ÒòЩÄã×Ô¼º×îºÃ±ÜÃâÕâÖÖÓ÷¨¡£
3.CÓïÑÔµÄÃû×ÖÊÇÇø·Ö´óСдµÄ¡£ ......