مالفرق بينC++ و Objective C
banner
2011-03-11 , 06:20 مساءً
sco123’s Avatar
sco123

عضو فعال

المشاركات:687
التسجيل:May 2009
sco123
اهلين شباب
عندي سؤال ...
ماهي الفروقات بين C++ و objective-C ؟ ( غير انها لآبل وحق منتجات آبل )
هل الفروقات كبيرة ؟
وهل تصميم الالعاب يكون في نفس المستوى ؟
ومن الافضل في رأيك ؟
Enlarged Image
2011-03-11 , 06:20 مساءً
2011-03-12 , 07:19 صباحاً
jimmy--7’s Avatar
jimmy--7

مشارك

المشاركات:298
التسجيل:Sep 2009
jimmy--7
نفس السؤال.................
2011-03-12 , 07:19 صباحاً
2011-04-05 , 12:59 صباحاً
OrdinaryMiracle’s Avatar
OrdinaryMiracle

مشارك

المشاركات:314
التسجيل:Nov 2009
OrdinaryMiracle
هذاي الاختلافات الرئيسية ..

[CODE]

  • C++ allows multiple inheritance, Objective-C doesn't.
  • Unlike C++, Objective-C allows method parameters to be named and the method signature includes only the names and types of the parameters and return type (see bbum's and Chuck's comments below). In comparison, a C++ member function signature contains the function name as well as just the types of the parameters/return (without their names).
  • C++ uses bool, true and false, Objective-C uses BOOL, YES and NO.
  • C++ uses void* and NULL, Objective-C prefers id and nil.
  • Objective-C uses "selectors" (which have type SEL) as an approximate equivalent to function pointers.
  • Objective-C uses a messaging paradigm (a la Smalltalk) where you can send "messages" to objects through methods/selectors.
  • Objective-C will happily let you send a message to nil, unlike C++ which will crash if you try to call a member function of NULL
  • Objective-C allows for dynamic dispatch, allowing the class responding to a message to be determined at runtime, unlike C++ where the object a method is invoked upon must be known at compile time (see wilhelmtell's comment below). This is related to the previous point.
  • Objective-C allows autogeneration of accessors for member variables using "properties".
  • Objective-C allows assigning to self, and allows class initialisers (similar to constructors) to return a completely different class if desired. Contrast to C++, where if you create a new instance of a class (either implicitly on the stack, or explicitly through new) it is guaranteed to be of the type you originally specified.
  • Similarly, in Objective-C other classes may also dynamically alter a target class at runtime to intercept method calls.
  • Objective-C lacks the namespace feature of C++.
  • Objective-C lacks an equivalent to C++ references.
  • Objective-C lacks templates, preferring (for example) to instead allow weak typing in containers.
  • Objective-C doesn't allow implicit method overloading, but C++ does. That is, in C++ int foo (void) and int foo (int) define an implicit overload of the method foo, but to achieve the same in Objective-C requires the explicit overloads - (int) foo and - (int) foo:(int) intParam. This is due to Objective-C's named parameters being functionally equivalent to C++'s name mangling.
  • Objective-C will happily allow a method and a variable to share the same name, unlike C++ which will typically have fits. I imagine this is something to do with Objective-C using selectors instead of function pointers, and thus method names not actually having a "value".
  • Objective-C doesn't allow objects to be created on the stack - all objects must be allocated from the heap (either explicitly with an alloc message, or implicitly in an appropriate factory method).
  • Like C++, Objective-C has both structs and classes. However, where in C++ they are treated as almost exactly the same, in Objective-C they are treated wildly differently - you [I]can[/I] create structs on the stack, for instance.

[/CODE]

وهذا يدل انه C++ تتفوق ببعض النواحي ..
وبرضه نفس الشيء للـ Objective-C تتفوق من نواحي اخرى .. وهكذا بسآئر لغات البرمجة ..
----
لكن Objective-C محتكره لآبل ..
اماC++ تقدر تستخدمها ع الوندوز او ع اللينكس او اي نظام اخر ..
2011-04-05 , 12:59 صباحاً
2011-04-16 , 03:12 مساءً
Q8o5o’s Avatar
Q8o5o

عضو فعال

المشاركات:757
التسجيل:Aug 2010
Q8o5o
زين ايهوا اسهل السي يلس بلس و لا objectivd c ؟؟؟
انا دارس لغه ال ++c و الحمد لله ماشي فيها بس هذي ال objective c مو عارف عنها شي
2011-04-16 , 03:12 مساءً
2011-04-16 , 05:08 مساءً
No XIII Roxas’s Avatar
No XIII Roxas

عضو جديد

المشاركات:10
التسجيل:Jan 2011
No XIII Roxas
طيب ايش اللغة اللي يستخدموها برمجي الالعاب القوية
؟؟
2011-04-16 , 05:08 مساءً
2011-04-16 , 10:39 مساءً
aboOodi123’s Avatar
aboOodi123

نشيط

المشاركات:1000
التسجيل:Jun 2008
aboOodi123
الـ Objective-C من أسهل لغات البرمجة و أقواها خصوصا عل منصات ابل لانها متناسقة مع الـ cocoa

الدليل انك تشوف برامج من نفس الشركة او الشخص الي عملها على عدة منصات (الماك و الويندوز مثلا )
نفس البرنامج من نفس المطور يكون على الماك أجمل و أحسن بكثييير من الويندوز

والأخ الي فوق الي يقول الـ  Objective-C محتكرة على ابل
مافي شي اسمه لغة برمجة محتكرة تقدر تبرمج على الويندوز بإستخدام لغة Objective-C وتقدر تبرمج على الماك بلغة ++C
لكن ما راح تقدر تستخدم الـ cocoa علي الويندوز
2011-04-16 , 10:39 مساءً
2011-05-16 , 05:02 مساءً
الداهيه الاهلاوي’s Avatar
الداهيه الاهلاوي

مبدع

المشاركات:3642
التسجيل:Nov 2007
الداهيه الاهلاوي
aboOodi123 كتب:
الـ Objective-C من أسهل لغات البرمجة و أقواها خصوصا عل منصات ابل لانها متناسقة مع الـ cocoa

الدليل انك تشوف برامج من نفس الشركة او الشخص الي عملها على عدة منصات (الماك و الويندوز مثلا )
نفس البرنامج من نفس المطور يكون على الماك أجمل و أحسن بكثييير من الويندوز

والأخ الي فوق الي يقول الـ  Objective-C محتكرة على ابل
مافي شي اسمه لغة برمجة محتكرة تقدر تبرمج على الويندوز بإستخدام لغة Objective-C وتقدر تبرمج على الماك بلغة ++C
لكن ما راح تقدر تستخدم الـ cocoa علي الويندوز




لو سمحت وشو ال Cocoa ؟
2011-05-16 , 05:02 مساءً
2011-05-17 , 11:56 مساءً
aboOodi123’s Avatar
aboOodi123

نشيط

المشاركات:1000
التسجيل:Jun 2008
aboOodi123
الداهيه الاهلاوي كتب:
لو سمحت وشو ال Cocoa ؟


هي واجهة النظام برمجتها ابل بإستخدام لغة objective-c أو c
مثل الأزرار ، القوائم ، خرائط ......
وهي جاهزة تستطيع استخدامها مباشرة او التعديل عليها
2011-05-17 , 11:56 مساءً
2011-05-22 , 11:33 مساءً
Dodo Bobo’s Avatar
Dodo Bobo

**

المشاركات:1600
التسجيل:Nov 2010
Dodo Bobo
السي كصفة عآمة قوية
وانا اعطي صوتي لسي ++
الافضل في الالعاب هي c++ , اكثر الالعاب الكبيرة والمميزة مبرمج بالسي ++
الفروقآت بسيطة
وطبعاً لا اقول إن اوبجكتف سي مو كويسة بالعكس لغة قوية
2011-05-22 , 11:33 مساءً
2011-05-23 , 04:34 مساءً
aboOodi123’s Avatar
aboOodi123

نشيط

المشاركات:1000
التسجيل:Jun 2008
aboOodi123
^^^
لغة البرمجة مالها دخل بقوة الألعاب
لغة البرمجة مجرد أوامر يتبعها الكمبيوتر
2011-05-23 , 04:34 مساءً
2011-06-07 , 03:44 صباحاً
3body47’s Avatar
3body47

عضو

المشاركات:61
التسجيل:Aug 2010
3body47
^^^^^

لا اوافقك الرأي

والأسباب كثيره

مثلا دخل بعد السي بلس بلس عدة لغاة برمجه مثل السي شارب والجافا وكل وحده لها قوة معينه

ولكن مازالت السي بلس بلس قوية والمفظله لدى أغلب المبرمجين

ونصيحة للجميع لو حاب تتعلم جميع لغات البرمجه بسهوله تعلم السي بلس بلس :) معلومه قالها الدكتور في الجامعه وفعلا حتى لو حبيت تتعلم الـ PHP تستطيع بسهوله ان كنت تتعامل مع السي بلس بلس

التشابه بين لغات البرمجه كبير :)
2011-06-07 , 03:44 صباحاً
2011-06-13 , 05:19 مساءً
الداهيه الاهلاوي’s Avatar
الداهيه الاهلاوي

مبدع

المشاركات:3642
التسجيل:Nov 2007
الداهيه الاهلاوي
طيب شباب اقدر ابرمج للايفون بلغة ال c++ او لازم الاوبجكتيف ؟
2011-06-13 , 05:19 مساءً
2011-06-13 , 07:57 مساءً
مبرمج ويب’s Avatar
مبرمج ويب

مشارك

المشاركات:70
التسجيل:Mar 2008
مبرمج ويب
الـ objective-c مثل ماهو واضح من الاسم هي لغة C اضيفت لها خاصية الـبرمجة الكائنية (OOP) ..

ولهذا السبب لا تستطيع تعلم لغة objevtive-c مباشرة , وانما لابد تكون فهمت اساسيات لغة C اولا , بعكس لغة ++C او java..

وعموماُ الفروقات بين اللغتين ليست كبيرة لانها كلها في النهاية مبنية على لغة C .
2011-06-13 , 07:57 مساءً