الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اين تكمن قوة سي++

بدأه tsh1 في 23 يونيو 2008 · 9 رد · 1,490 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

دار حوار بيني وبين مجموعة من المبرمجين وهم متخصصين في فجوال بيزك واخبرتهم انني اريد تعلم البرمجة بلغة سي++ رغم ان لي خلفية في الفجوال بيزك

لكنهم سالوني لماذا لا تبرمج بالفجوال بيزك فاجبتهم ان السي++ اقوى بكثير من الفجوال بيزك لكنني لا اعرف بالظبط اين تكمن قوة السي++

ارجو منكم ان تخبروني كي اخبرهم

ولا تقلقو فانا اعرف اشياء عدة على السي++ كلامؤشرات والكلاسس وغيرها

يعني من كان يريد اضهار قوة سي++ فيتكرم ويخبرنا بها واكون له من الشاكرين

تحياتي

#2

من بين قوتها أنها Portable أي أنها تعمل على أكثر من نظام .

لا تحتاج إلى مكتبات ربط ديناميكي كي تعمل برامجها .

يمكنك البدء من الصفر و كأن نقول مترجم من دون مكتبات يعني ليس من الضروري أن تتوفر مكتبات حتى تبرمج تستطيع أنت كتابتها .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#3

ناهيك عن تعدد مكاتبها والتنقل بينها

فإنها تتميز بالسرعة والوراثة(اهم شيئ) والمؤشرات و بإمكانك الحاق بداخلها اكواد اسمبلي

صراحة انا ما اعرف كيف باقي اللغات تعيش بدون مؤشرات وبدون وراثة ؟؟؟

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#4

ربي يحفضك خونا سيف صحيت....

وشكرا اخي مصفوفة

لكن ايضا يمكن برمجة ملفات الربط الديناميكي عن طريق الفجوال بيزك

هل من مزيد

#5

همممم , فيجوال بيسك , او سي ++ :wub:

The biggest reason for using C++ over VB is code reuse through inheritance. Also, for large projects classes in C++ are a great way to organize the project. I see no particular speed advantage to VB once you've come up the learning curve for C++. The examples of VB doing amazing projects in a few lines of code only occur because someone has written an OCX in C or C++ that "really" does all the work.

VC++ seems to allow you to use your resources much more effectively than VB does.

VB is okay when building forms, but even if you use VB to build a form, you still need something to do the work of populating the form. This bring us back to C++/VC++ or some other work horse language. Build the forms in VB, but do the work elsewhere. Let VB be the paint and polish on the vehicle, but C++ be the engine under the hood.

Let VB be the paint and polish on the vehicle, but C++ be the engine under the hood.

The debugging tools are better in C++ .

VC++ is more powerful because it is merely an

encapsulation of the already-existing Win32 API. In other words, I can

work with the MFC classes directly and alter the code underneath. However,

with VB you're stuck with the encapsulation provided; period. The VB

statements are too weak to go digging underneath

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#6
اقتباس
صراحة انا ما اعرف كيف باقي اللغات تعيش بدون مؤشرات وبدون وراثة ؟؟؟

من اين اتيت بهذا الكلام .......؟؟؟ :hmm:

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#7
اقتباس
صراحة انا ما اعرف كيف باقي اللغات تعيش بدون مؤشرات وبدون وراثة ؟؟؟

معلومة خاطئة ... كل اللغات الـnative تقريباً بها مؤشرات .

سأكتفي باقتباس رد الأخ الرومانسي :

romansy كتب:

يبدوا أن هناك التباس في مفهوم البرمجه في سي++ ،

سي++ يمكن اعتبارها مصنع للبرمجه :) ، حيث يمكن البرمجه بها بكثير من الطرق ، الطريقه الوظيفيه Functional Programming ، الطريقه الكائنيه Object Oreinted ، الطريقه العامه Generic Programming وهنا سوف نستخدم مفاهيم متقدمه للغايه مثل Template MateProgramming .

ولكل طريقه من هذه الطرق كتب كامله تتحدث عنها ، وأظن أنه أغلب الأعضاء ليس لديهم مشاكل في كتابه برامج بالطريقه الأولى (حيث لا تستلزم الكثير من المفاهيم ، كل ما في الأمر مجرد تنظيم للبرنامج وكيفيه استدعاء الدوال المناسبه في الوقت المناسب ) .

الطريقه الأخرى ، وهي الخاصه بسي++ ، هي الطريقه الكائنيه ، وهي الطريقه المفترض أن تكون الدروس حولها هنا في القسم ، مثلا متى نستخدم عمليه الوراثه ؟ ومتى تكون عمليه الـ Compisition أفضل منها ؟

متى تكون عمليه الوراثه هي صحيحه 100% ، أي نطبق علاقه is-a بشكل صحيح ، وليس وراثه بمجرد استخدام public BaseClass ، أو extends في لغات أخرى !

كيف نحلل البرنامج بطريقه OO ، كيف نفكر بطريقه OO ؟ كيف نتعامل مع الكائنات الكبيره ؟ كيف نقسم مسؤليات كل كائن ؟

وهناك كتب كامله تتكلم حول هذا الموضوع Object Orinted Analysis And Desing OOA/D .

وهناك الطريقه الـ Generic Programming ،وهي الطريقه الأصعب في كل هذه الطرق وخاصه موضوع Template MetaProgramming حيث أغلب المبرمجين يخافون من الدخول في متاهاته ، وهو بشكل عام تنفيذ البرنامج وقت الترجمه !

هذه هي سي++ ، (بالطبع مع تطبيق الخوارزميات وبعضا من DataStructure ) ...

وليست التعامل مع api خاص بنظام معين ، لموضوع معين وهو الRegistery !

راجعوا كتب سي++ المتقدمه مثل مثلا : Effictive c++ ، More Effictive C++ , وغيرها الكثير ، وستجدوا أنها تتكلم عن المؤشرات والمراجع والـ Namespace وهكذا من المواضيع التي يعتقد البعض انه أحترفها بمجرد أستخدامها في Toys Exmaple !

طبعا تتكلم بشكل واسع ومتقدم وليس مجرد أساسيات كما في أغلب الكتب التي تعلم الأساسيات فقط .

أخيرا ، موضوع برمجه الويندوز باستخدام API موضوع فعلا ممتع ويجب أن نعطيه حقه ، لكن في المقابل يجب أن لا ننكر أهميه سي++ ، وحتى لو كان برنامج لطباعه Hello World :) .

(وأعتقد أن هناك قسم مخصص لمواضيع برمجه الويندوز ، لذلك يجب نقل الموضوع الى القسم المخصص ياخالد :) ) .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#8

اعتقد ان قوة السي بلس بلس تكمن في عدة اوامر سوف اذكر بعضها على حد علمي

1-اللغه تتعامل مع النظام مباشرة من حجز مواقع بالذاكرة والتعامل مع الذاكرة

2-بامكانك تصميم وتطوير انظمة تشغيل فهي تتعامل بقوة مع البيانات كالقوائم المتصلة والمكدس والاشجار وغيرها ولا تستطيع بالفيجوال

3-جمعت البرمجة غرضية التوجيه

قم بتجربتها وسترى القوة

:unsure:

#9
اقتباس
1-اللغه تتعامل مع النظام مباشرة من حجز مواقع بالذاكرة والتعامل مع الذاكرة

كي تتضح الصورة :

1- أي لغة لا تقوم بحجز كتل من الذاكرة بنفسها بل يفعل ذلك إما مكتبات قياسية أو عن طريق التعامل مع الـAPI (سواء في ويندوز أو لينكس) .

2- طرق حجز الذاكرة تحت منصة معينة معروفة , أي أن السي و البيسك والباسكال تستخدم نفس الطريقة مع أختلاف الاسلوب فقط .

تم تعديل هذه المشاركة بواسطة GamingMasteR في 25 يونيو 2008 في 22:53

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#10

من واقع تجربتي في السي بلس بلس .

السي بلس بلس لغة برمجـة كبيرة .. وتحتاج للكبار .......

إذا استخدم المبرمجون الصغار هذه اللغة فالأمر أشبه ما يكون بطفل يقود حاملة طائرات لوحده

مواضيع مشابهة