آموزش سی پلاس پلاس

دسته بندی: زبان برنامه نویسی

آموزش سی پلاس پلاس

آنچه در این صفحه می خوانید :

معرفی زبان سی (C)

C یک زبان برنامه نویسی همه منظوره است که از برنامه نویسی ساخت یافته، دامنه متغیر واژگانی و بازگشتی پشتیبانی می کند، در حالی که یک سیستم نوع استاتیک مانع از فعالیت های ناخواسته می شود. C سازه هایی را فراهم می کند که به صورت کارآمد در دستورالعمل های دستگاه معمولی قرار گرفته و در برنامه هایی که قبلاً به زبان مونتاژ کدگذاری شده اند، استفاده پایدار پیدا کرده است. این برنامه ها شامل سیستم عامل ها و نرم افزارهای مختلف کاربردی برای رایانه ها تا سیستم های جاسازی شده است.

C ابتدا در سال های 1972 تا 1973 توسط دنیس ریچی در آزمایشگاه های بل ساخته شد تا برنامه های کاربردی روی یونیکس اجرا شود. بعداً برای اجرای مجدد هسته سیستم عامل یونیکس استفاده شد. در طول دهه 1980، C به تدریج محبوبیت پیدا کرد. امروزه، این یکی از پرکاربردترین زبان های برنامه نویسی است که کامپایلرهای C از فروشندگان مختلف برای اکثر معماری های رایانه ای موجود و سیستم عامل ها در دسترس است. C از سال 1989 توسط ANSI استاندارد شده است.

C یک زبان رویه ای ضروری است. این طراحی شده است تا با استفاده از یک کامپایلر نسبتاً ساده به منظور دستیابی به سطح پایین سازه های حافظه و زبان که به صورت کارآمد در دستورالعمل های ماشین، کاملاً با حداقل پشتیبانی در زمان اجرا، گردآوری شده باشد. با وجود قابلیت های سطح پایین، این زبان برای تشویق برنامه نویسی پلتفرم ساخته شده است. یک برنامه C سازگار با استانداردها که با قابلیت حمل و نقل نوشته شده است می تواند برای طیف گسترده ای از سیستم عامل های رایانه ای و سیستم عامل ها با چند تغییر در کد منبع آن تهیه شود. این زبان در سیستم عامل های مختلف، از میکروکنترلرهای تعبیه شده گرفته تا ابر رایانه ها موجود است.

زبان C برای ایجاد برنامه های کاربردی سیستم که به طور مستقیم با دستگاه های سخت افزاری مانند درایورها، Kernel هاو غیره ارتباط برقرار می کند، توسعه داده شده است. برنامه نویسی C به عنوان پایه برای دیگر زبان های برنامه نویسی در نظر گرفته شده است، به همین دلیل است که به عنوان زبان مادر شناخته می شود. زبان برنامه نویسی C کامل و جامع، ساخت یافته، دستوری و روندگرا است که به هیچ سخت افزار یا سیستم عامل خاصی وابستگی ندارد.

C را می توان با روش های زیر تعریف کرد:

  • زبان مادر (Mother language) :زبان C به عنوان زبان مادر همه زبان های برنامه نویسی مدرن در نظر گرفته شده است، زیرا اکثر کامپایلر ها، JVM ها، Kernel ها و غیره با زبان C نوشته شده است و بیشتر زبان های برنامه نویسی از syntax آن پیروی می کنند مانند: ++C# ،Java ،C، و غیره. زبان C مفاهیم اصلی مانند آرایه، رشته ها، توابع، مدیریت فایل ها و غیره را فراهم می کند.
  • زبان برنامه نویسی سیستم (System programming language) :یک زبان برنامه نویسی سیستم، برای ایجاد نرم افزار سیستمی استفاده می شود. زبان C یک زبان برنامه نویسی سیستم است زیرا می توان آن را برای برنامه نویسی سطح پایین (مثلا درایورها و کرنل ها) استفاده کرد. به طور کلی برای ایجاد دستگاه های سخت افزاری، سیستم عامل، درایور، کرنل و غیره استفاده می شود. به عنوان مثال، هسته لینوکس در C نوشته شده است. C را نمی توان مثل Java ،.Net ، PHP و غیره برای برنامه نویسی وب استفاده کرد.
  • زبان برنامه نویسی رویه ای (Procedure-oriented programming language) : یک رویه به عنوان یک تابع، روش، روال، زیرروال و غیره شناخته می شود. یک زبان رویه ای یک سری از مراحل را برای حل مشکل مشخص می کند و برنامه را به توابع، ساختارهای داده و غیره تقسیم می کند. C زبان رویه ای است. در C متغیرها و توابع نمونه قبل از استفاده باید اعلام شوند.
  • زبان برنامه نویسی ساختاری (Structured programming language):یک زبان برنامه نویسی ساختاری، زیر مجموعه ای از زبان رویه ای است. ساختار به این معنی است که یک برنامه را به قطعات یا بلوک هایی تقسیم می کند تا درک آن آسان تر شود. در زبان C، برنامه با استفاده از توابع به قطعاتی کوچکتر تقسیم می شود. این باعث می شود که برنامه به راحتی درک و اصلاح شود.
  • زبان برنامه نویسی سطح متوسط (Mid-level programming language):زبان سی به عنوان یک زبان سطح متوسط در نظر گرفته می شود زیرا از ویژگی های زبان های سطح پایین و سطح بالا پشتیبانی می کند. برنامه زبان C به کد اسمبلی تبدیل می شود، C از pointer arithmetic (سطح پایین) پشتیبانی می کند، اما مستقل از دستگاه است (ویژگی سطح بالا).

تاریخچه زبان سی (C)

منشأ C با توسعه سیستم عامل یونیکس کاملاً مرتبط است، که در اصل با زبان مونتاژ بر روی PDP-7 توسط دنیس ریچی و کن تامپسون پیاده سازی شده است و چندین ایده از همکاران را در برمی گیرد. سرانجام، آنها تصمیم گرفتند سیستم عامل را به PDP-11 منتقل کنند. نسخه اصلی PDP-11 یونیکس نیز به زبان مونتاژ تولید شده است. تامپسون یک زبان برنامه نویسی را برای ایجاد برنامه های کاربردی برای سیستم عامل جدید می خواست. در ابتدا، او سعی کرد تا کامپایلر Fortran بسازد، اما به زودی این ایده را رها کرد. در عوض، او یک نسخه برش خورده از زبان برنامه نویسی سیستم های اخیراً توسعه یافته BCPL ایجاد کرد. توضیحات رسمی BCPL در آن زمان موجود نبود و تامپسون اصلاح نحو را کم حرف تر می کرد، تولید B اما مشابه اما ساده تر. با این وجود، کمترین ابزارهای کاربردی در نهایت به B نوشتند زیرا خیلی آهسته بود و B نتوانست موفق شود. مزیت ویژگی های PDP-11 مانند آدرس پذیری بایت.

در سال 1972، ریچی شروع به بهبود B کرد، که منجر به ایجاد یک زبان جدید C شد. کامپایلر C و برخی از برنامه های کاربردی ساخته شده با آن در نسخه 2 یونیکس شد. در نسخه 4 یونیکس که در نوامبر 1973 هسته یونیکس توسط C، منتشر شد. توسط مجدداً مورد استفاده مجدد قرار گرفت. در این زمان، زبان C ویژگی های قدرتمندی مانند انواع ساختار را به دست آورد. یونیکس یکی از اولین هسته های سیستم عامل بود که به زبانی غیر از مونتاژ اجرا شد.

معرفی زبان سی پلاس پلاس (++C)

++C یک زبان برنامه نویسی شی گرا و یک توسعه از زبان C است. ++C یک زبان همه منظوره، حساس به حروف، با نوشتار آزاد است که از برنامه نویسی شی گرا، رویه ای و عمومی پشتیبانی می کند. ++C یک زبان سطح متوسط است، زیرا هر کدام از ویژگی های زبان سطح بالا و پایین را پوشش می دهد. توسط Bjarne Stroustrup بعنوان پسوند زبان برنامه نویسی C یا "C with Classes" ایجاد شده است. این زبان با گذشت زمان بطور چشمگیری گسترش یافته است و ++C مدرن علاوه بر امکاناتی برای دستکاری حافظه سطح پایین ، دارای ویژگی های شی گرا، عمومی و عملکردی نیز می باشد. تقریباً همیشه به عنوان یک زبان کامپایل شده اجرا می شود و بسیاری از فروشندگان کامپایلرهای ++C از جمله بنیاد نرم افزار رایگان، LLVM، مایکروسافت، اینتل، اوراکل و IBM را ارائه می دهند، بنابراین در بسیاری از سیستم عامل ها در دسترس است.

++C با تعصب نسبت به برنامه نویسی سیستم و نرم افزار جاسازی شده، محدود به منابع و سیستم های بزرگ، با عملکرد، کارآیی و انعطاف پذیری استفاده به عنوان برجسته طراحی آن طراحی شد. ++C همچنین در بسیاری از زمینه های دیگر مفید واقع شده است که نقاط قوت آن زیرساخت های نرم افزاری و برنامه های محدود شده از منابع، از جمله برنامه های دسکتاپ، سرورها (به عنوان مثال تجارت الکترونیکی، جستجوی وب یا سرورهای SQL) و برنامه های مهم برای عملکرد (به عنوان مثال سوئیچ تلفن) یا کاوشگرهای فضایی).

++C توسط سازمان بین المللی استاندارد سازی (ISO) استاندارد شده است و آخرین نسخه استاندارد توسط ISO در دسامبر سال 2017 (به طور غیر رسمی با عنوان C++ 17 شناخته شده است) منتشر شده است. استاندارد فعلی C++ 17 با ویژگی های جدید و یک کتابخانه استاندارد بزرگتر برتری دارد. قبل از استانداردسازی اولیه در سال 1998، ++C توسط دانشمند کامپیوتر دانمارکی Bjarne Stroustrup در آزمایشگاه های بل از سال 1979 به عنوان پسوند زبان C توسعه داده شد. او یک زبان کارآمد و انعطاف پذیر مشابه C می خواست که ویژگی های سطح بالایی را نیز برای سازمان برنامه فراهم می آورد. C++ 20 استاندارد برنامه ریزی شده بعدی است که هر 3 سال یکبار با روند فعلی یک نسخه جدید همراه است. نحوه کامپایل و اجرای برنامه ++C به دو صورت از طریق منوی compile و میانبر ctrl+f9 انجام می شود.

تاریخچه زبان سی پلاس پلاس (++C)

در سال 1979، Bjarne Stroustrup، دانشمند دانمارکی رایانه، شروع به کار در ++C کرد. انگیزه برای ایجاد یک زبان جدید ناشی از تجربه استروستروپ در برنامه نویسی برای پایان نامه دکتری وی است. استروستروپ دریافت که Simula دارای ویژگی هایی است که برای توسعه نرم افزارهای بزرگ بسیار مفید است، اما زبان برای استفاده عملی خیلی آهسته بود، در حالی که BCPL سریع اما بسیار سطح پایین بود تا برای توسعه نرم افزارهای بزرگ مناسب باشد. هنگامی که استروستروپ شروع به کار در AT&T Bell Labs کرد، وی مشکل تجزیه و تحلیل هسته یونیکس را با توجه به محاسبات توزیع شده داشت. با یادآوری دکترای خود تجربه، Stroustrup برای تقویت زبان C با ویژگی های شبیه Simula آماده کرده است. C به دلیل داشتن کلی هدف، سریع، قابل حمل و استفاده گسترده از آن انتخاب شد.

پس از 98++C ++ ،C به تدریج تکامل یافت، تا اینکه در سال 2011، استاندارد C++ 11 منتشر شد، با اضافه کردن چندین ویژگی جدید، افزودن کتابخانه استاندارد بیشتر و فراهم آوردن امکانات بیشتر برای برنامه نویسان ++C . پس از بروزرسانی جزئی C++ 14 که در دسامبر 2014 منتشر شد، افزودنی های مختلف جدیدی در C++ 17 معرفی شد و تغییرات دیگری نیز برای سال 2020 برنامه ریزی شده است. در سال 2019 ،++C اکنون چهارمین زبان محبوب برنامه نویسی، پس از جاوا، سی و پایتون است.

ویژگی های سی پلاس پلاس (++C)

  • ساده :++C یک زبان ساده است به این معنی که رویکرد ساختاری (برای شکستن مشکل به قطعات)، مجموعه غنی از توابع کتابخانه، انواع داده و غیره فراهم می کند.
  • مستقل از ماشین یا قابل حمل : بر خلاف زبان اسمبلی، برنامه های C را می توان در بسیاری از ماشین ها با کمی یا بدون تغییر اجرا کرد. اما مستقل از پلتفرم نیست.
  • زبان برنامه نویسی سطح متوسط : سی پلاس پلاس نیز برای انجام برنامه نویسی سطح پایین استفاده می شود. این زبان برای توسعه برنامه های کاربردی سیستم مانند کرنل، درایور و غیره استفاده می شود. همچنین از ویژگی زبان سطح بالا پشتیبانی می کند. به همین دلیل است که به عنوان زبان میان رده شناخته می شود.
  • زبان برنامه نویسی ساختاری: ++C یک زبان برنامه نویسی structured است به این معنا که ما می توانیم با استفاده از توابع برنامه را به قطعاتی بشکنیم تا آسانتر درک شود.
  • کتابخانه غنی Rich Library : سی پلاس پلاس بسیاری از توابع داخلی را ایجاد می کند که باعث توسعه سریع می شود.
  • مدیریت حافظه : سی پلاس پلاس از ویژگی تخصیص حافظه پویا پشتیبانی می کند. در زبان ++C، می توانیم حافظه اختصاص داده شده را در هر زمان با فراخوانی تابع free آزاد کنیم.
  • سرعت : زمان کامپایل و اجرای زبان ++C سریع است.
  • اشاره گرها :در ++C می توان با استفاده از اشاره گرها به طور مستقیم با حافظه ارتباط برقرار کرد و همچنین می توان اشاره گرها را برای حافظه، ساختارها، توابع، آرایه ها و غیره استفاده نمود.
  • توابع بازگشتی : در ++C، می توان تابع را درون خودش صدا زد این قابلیت استفاده مجدد را برای هر تابع فراهم می کند.
  • قابلیت گسترش :زبان ++C قابل گسترش است زیرا می تواند به راحتی ویژگی های جدیدی را به کار گیرد.
  • شیء گرا :سی پلاس پلاس زبان برنامه نویسی شی گرا OOP است که توسعه و تعمیر و نگهداری را آسان تر می کنند، در حالی که در زبان برنامه نویسی Procedure-oriented، اگر کد رشد کند، مدیریت آن سخت می شود.
  • مبتنی بر کامپایلر : ++C یک زبان برنامه نویسی مبتنی بر کامپایلر است، یعنی بدون کامپایل هیچ برنامه ++C را نمی توان اجرا کرد. ابتدا باید برنامه خود را با استفاده از کامپایلر ،کامپایل و سپس اجرا کرد.

کاربرد سی پلاس پلاس (++C)

استفاده از ++C برای توسعه بسیاری از برنامه های کاربردی مبتنی بر این زبان فقط به دلیل ویژگی ها و امنیت آن، مزایای بسیاری دارد. لطفاً بخشهای زیر را پیدا کنید ، جایی که کاربردهای ++C به طور گسترده و مؤثر مورد استفاده قرار گرفته است. در زیر لیست 10 کاربرد برتر ++C قرار دارد.

برنامه های کاربردی

برای توسعه برنامه های جدید ++C استفاده می شود. برنامه های کاربردی مبتنی بر رابط کاربری گرافیکی، که از برنامه های بسیار پر کاربردی مانند Adobe Photoshop و سایر موارد استفاده می کنند. بسیاری از برنامه های سیستم های Adobe در ++C مانند Illustrator ،Adobe Premiere و آماده تصویر ساخته شده اند و توسعه دهندگان Adobe در جامعه ++C فعال به حساب می آیند.

بازی ها

این زبان برای توسعه بازی ها نیز استفاده می شود. این پیچیدگی بازی های سه بعدی را نادیده می گیرد. این به بهینه سازی منابع کمک می کند. این گزینه از چند نفره با شبکه پشتیبانی می کند. استفاده از ++C به برنامه نویسی رویه ای برای عملکردهای فشرده CPU و کنترل سخت افزار اجازه می دهد و این زبان خیلی سریع انجام می شود، به همین دلیل در توسعه بازی های مختلف یا در موتورهای بازی بسیار مورد استفاده قرار می گیرد. ++C عمدتا در ساخت مجموعه های یک ابزار بازی استفاده می شود.

انیمیشن

یک نرم افزار انیمیشن وجود دارد که با کمک زبان ++C ساخته شده است. از نرم افزارهای انیمیشن سه بعدی، مدل سازی، شبیه سازی، رندر به عنوان ابزار قدرتمند یاد می شود. از آن برای ساختن زمان واقعی، پردازش تصویر، برنامه های حسگر موبایل و جلوه های بصری استفاده می شود، مدل سازی که عمدتاً در ++C کدگذاری شده است. این نرم افزار توسعه یافته برای انیمیشن، محیط، موشن گرافیک، واقعیت مجازی و خلق شخصیت استفاده شده است. دستگاه های واقعی مجازی محبوب ترین در دنیای سرگرمی امروز هستند.

مرورگر وب

این زبان برای توسعه مرورگرها نیز استفاده می شود. برای ساخت Google Chrome و مرورگر اینترنت Mozilla Firefox استفاده می شود. برخی از برنامه ها با زبان ++C نوشته شده اند، که مرورگر Chrome یکی از آنهاست و برخی دیگر مانند یک سیستم پرونده هستند، نقشه پردازش داده های خوشه ای بزرگ را کاهش می دهد. Mozilla برنامه دیگری نیز دارد که در ++C نوشته شده است که مشتری ایمیل Mozilla Thunderbird است. ++C همچنین موتور ارائه دهنده پروژه های اوپن سورس گوگل و موزیلا است.

دسترسی به بانک اطلاعاتی

این زبان برای توسعه نرم افزار پایگاه داده یا نرم افزار اوپن سورس نیز استفاده می شود. مثال برای این MySQL است که یکی از محبوب ترین نرم افزارهای مدیریت پایگاه داده است و به طور گسترده در سازمان ها یا در میان توسعه دهندگان مورد استفاده قرار می گیرد. این در صرفه جویی در وقت، پول سیستم های تجاری و نرم افزارهای بسته بندی شده کمک می کند. برنامه های کاربردی دیگر مبتنی بر دسترسی به نرم افزار پایگاه داده وجود دارد که از ویکی پدیا، یاهو، یوتیوب و غیره استفاده می کنند. مثال دیگر Bloomberg RDBMS است که به ارائه اطلاعات مالی در زمان واقعی به سرمایه گذاران کمک می کند. این مقاله عمدتا با زبان ++C نوشته شده است و این باعث می شود دسترسی سریع یا دقیق به اطلاعات برای ارائه اطلاعات مربوط به تجارت و امور مالی، اخبار در سراسر جهان انجام شود.

دسترسی رسانه ای

همچنین برای ایجاد یک دستگاه پخش رسانه ای، مدیریت فایل های ویدئویی و فایل های صوتی استفاده می شود. مثال، پخش کننده Winamp Media است که به زبان ++C ساخته شده است و به ما امکان می دهد از موسیقی، دسترسی و اشتراک گذاری فیلم ها و فایل های موسیقی لذت ببریم. همچنین دارای امکاناتی مانند پشتیبانی هنری، پخش صوتی و تصویری است. همچنین امکان دسترسی به ایستگاه های رادیویی اینترنتی را فراهم می کند.

کامپایلرها

بیشتر کامپایلرها که عمدتا فقط به زبان ++C نوشته شده اند. کامپایلرهایی که برای گردآوری زبانهای دیگر مانند #C، جاوا و غیره استفاده می شوند که عمدتا فقط در ++C نوشته شده اند. همچنین در توسعه این زبان ها نیز مورد استفاده قرار می گیرد و همچنین ++C مستقل از پلتفرم است و قادر به ایجاد انواع نرم افزار است.

سیستم عامل

همچنین برای توسعه بیشتر سیستم عامل ها برای مایکروسافت و چند قسمت از سیستم عامل اپل نیز استفاده می شود. مایکروسافت ویندوز 95، 98، 2000، XP، اینترنت اکسپلورر و ویژوال استودیو، سیستم عامل های تلفن همراه Symbian عمدتاً فقط به زبان ++C نوشته شده اند.

اسکن

برنامه هایی مانند اسکنر فیلم یا اسکنر دوربین نیز به زبان ++C توسعه یافته اند. برای توسعه فن آوری PDF برای اسناد چاپ، تبادل اسناد، بایگانی اسناد و انتشار اسناد نیز استفاده شده است.

سایر موارد استفاده

از آن برای کاربردهای پزشکی و مهندسی، سیستم های طراحی به کمک رایانه استفاده می شود. این برنامه ها مانند دستگاه های اسکن MRI، سیستم های CAM است که عمدتا در بیمارستان ها و سایر بخش های ساخت و معدن و غیره مورد استفاده قرار می گیرد. برنامه های ++C به عنوان اولین زبان ترجیحی که در هنگام عملکرد در بین توسعه دهنده استفاده می شود، در نظر گرفته می شود. برای هر برنامه در حال توسعه در نظر گرفته شده است.

کتابخانه استاندارد سی پلاس پلاس (++C)

در زبان برنامه نویسی ++C، کتابخانه استاندارد ++C مجموعه ای از کلاس ها و توابع است که به زبان اصلی و بخشی از خود استاندارد C++ ISO نوشته شده است. کتابخانه استاندارد ++C چندین کانتینر عمومی، کارکردهایی برای استفاده و دستکاری این کانتینر، اشیاء عملکردی، رشته ها و جریان های عمومی (از جمله تعاملی و پرونده I / O)، پشتیبانی از برخی از ویژگی های زبان و کارکردهایی برای کارهای روزمره مانند یافتن مربع فراهم می کند. ریشه شماره کتابخانه استاندارد ++C همچنین 18 عنوان از کتابخانه استاندارد ISO C90 C را شامل می شود که با ".h" پایان می یابد، اما استفاده از آن ها بی ارزش می شود. هیچ عنوان دیگری در کتابخانه استاندارد ++C به ".h" ختم نمی شود. ویژگی های کتابخانه استاندارد ++C در فضای نام std اعلام شده است.

كتابخانه استاندارد ++C براساس كنوانسيون هاي ارائه شده توسط كتابخانه استاندارد الگو (STL) است و تحت تاثير تحقيقات در برنامه هاي عمومي و توسعه دهندگان STL مانند الكساندر استپانوف و منگ لي قرار گرفته است. اگرچه کتابخانه استاندارد ++C و STL دارای بسیاری از ویژگی ها هستند، اما هیچ یک از برترین موارد دیگر نیست. ویژگی قابل توجه کتابخانه استاندارد ++C این است که نه تنها نحو و معناشناسی الگوریتم های عمومی را مشخص می کند بلکه الزامات عملکرد آنها را نیز مشخص می کند. این الزامات عملکرد اغلب با یک الگوریتم شناخته شده مطابقت دارد، که انتظار می رود اما نیازی به استفاده از آن نباشد. در بیشتر موارد، این نیاز به زمان خطی O (n) یا زمان خطی O (n log n) دارد، اما در برخی موارد، مرزهای بالاتر مجاز است، مانند زمان شبه خطی O (n log2 n) برای مرتب سازی پایدار (برای ورود به داخل محل ادغام) پیش از این، مرتب سازی فقط برای گرفتن میانگین O (n log n) لازم بود، استفاده از Quicksort که در عمل سریع است اما از بدترین حالت نیز برخوردار است، اما مرتب سازی مقدمه ای ارائه شده است تا هم عملکرد متوسط ​​سریع و هم بدترین وضعیت را بدست آورد. پیچیدگی در مقیاس کوچک و از C++ 11، مرتب سازی تضمین می شود که در بدترین حالت خطی باشد. در موارد دیگر، ملزومات ملایم تر مانند انتخاب، که فقط به طور متوسط ​​خطی هستند (مانند انتخاب سریع) لازم هستند و نیازی به خطی بدترین حالت ندارند. كتابخانه استاندارد ++C تحت عنوان استاندارد C++ ISO Standardization تحت استانداردسازي ISO قرار گرفت و در حال انجام كارهاي بيشتر در مورد استانداردسازي كاركردهاي توسعه يافته است.

برنامه نویسی استاندارد ++C به سه بخش مهم تقسیم می شود:

  • کتابخانه هسته (Core library) شامل انواع داده ها، متغیرها و ادبیات و غیره می باشد.
  • کتابخانه استاندارد (Standard library) شامل مجموعه ای از توابع دستکاری رشته ها، فایل ها و غیره می باشد.
  • کتابخانه استاندارد قالب (Standard Template Library) STL شامل مجموعه ای از روش های دستکاری ساختار داده می باشد.

معرفی برنامه نویسی شی گرا (OOP)

برنامه نویسی شی گرا (OOP) یک الگوی برنامه نویسی مبتنی بر مفهوم "اشیاء" است. OOP، برنامه های رایانه ای با ساختن اشیایی که با یکدیگر در تعامل هستند، طراحی شده اند. زبان های OOP متنوع هستند، اما محبوب ترین آن ها مبتنی بر کلاس است، به این معنی که اشیاء نمونه هایی از کلاس ها هستند که نوع آنها را نیز تعیین می کنند. همچنین برنامه نویسی شی گرا پارادایم برنامه نویسی که یک برنامه کامپیوتری را به عنوان ترکیبی از ساختارهای داده (به نام آبجکت) که می تواند اطلاعات را به شیوه ای استاندارد مبادله کند و می تواند به عنوان ماژول ها یا بلوک ها ترکیب شود نشان می دهد. هر آبجکت مستقل است و می تواند بدون تأثیر بر بلوک های دیگر تغییر کند. همچنین می تواند خودش اجرا شود و می تواند به آبجکت های دیگر متصل شود. آبجکت ها با انتقال اطلاعات بین یکدیگر تعامل دارند و هر آبجکت شامل اطلاعاتی درباره خود و آن دسته از آبجکت هایی است که می تواند با آنها تعامل داشته باشد.

Object-oriented programming به اختصار OOP، یک مدل زبان برنامه نویسی است که آبجکت ها به جای action و داده ها به جای منطق سازماندهی شده است. از لحاظ تاریخی، یک برنامه به عنوان یک روش منطقی مورد توجه قرار گرفته است که داده ورودی را دریافت می کند، پردازش می کند و داده های خروجی را تولید می کند. اولین گام در OOP این است که تمام آبجکت هایی که برنامه نویسان می خواهند دستکاری کنند و نحوه ی ارتباط آنها با یکدیگر را شناسایی کنند. این امر اغلب به عنوان مدل سازی داده شناخته می شود. هنگامی که یک آبجکت شناسایی می شود، به عنوان یک کلاس از آبجکت ها تعریف می شود که نوع داده ای که در آن وجود دارد و هر توالی منطقی که می تواند آن را دستکاری کند تعریف می کند. هر توالی منطقی مختلف به عنوان یک متد شناخته می شود. آبجکت ها با رابط های تعریف شده به نام پیام ها ارتباط برقرار می کنند.

تفاوت بین سی و سی پلاس پلاس

  • زبان سی، زبان برنامه نویسی ساخت یافته است اما سی پلاس پلاس زبان برنامه نویسی شیءگرا می باشد.
  • سی پلاس پلاس از شی گرایی پشتیبانی می کند اما سی پشتیبانی نمی کند.
  • زبان سی قدیمی تر از زبان سی پلاس پلاس است و امروزه کمتر از آن استفاده می شود.
  • در سی پلاس پلاس استفاده مجدد از Reusable Code میسر می باشد اما در سی این امکان وجود ندارد.
  • در زبان سی قابلیت های Virtual Function، Polymorphism، Operator Overloading وجود نداشت اما در سی پلاس پلاس وجود دارد.
  • انجام مبانی برنامه نویسی در سی از بالا به پایین است اما در سی پلاس پلاس طراحی برنامه از پایین به بالا صورت می پذیرد.
  • اتصال داده ها و توابع در سی امری سخت اما در ++C این فرآیند با استفاده از Object ها به راحتی صورت می گیرد.
  • در سی در هر تابعی می توانست تابع main را فراخوانی کنید اما در سی پلاس پلاس اینگونه نیست.
  • ارث بری تنها در سی پلاس پلاس قابل پیاده سازی است.
  • مدیریت خطاها در سی بسیار سخت تر از سی پلاس پلاس است.
  • ++C مخفی سازی داده ها را پشتیبانی می کند. بنابراین، داده ها توسط دنیای خارج قابل دسترسی نیستند اما سی مخفی کردن داده ها را پشتیبانی نمی کند.
  • ++C متغیرهای مرجع را پشتیبانی می کند اما C پشتیبانی نمی کند.

فریمورک های سی پلاس پلاس (++C)

QT

Qt برای توسعه واسط های گرافیکی کاربر (GUI) و برنامه های چند پلتفرمی که در تمام سیستم عامل های دسکتاپ اصلی و اکثر سیستم عامل های موبایل یا جاسازی شده اجرا می شوند، استفاده می شود. بیشتر برنامه های رابط کاربری گرافیکی ایجاد شده با Qt دارای یک رابط نیتیو هستند که در این حالت Qt به عنوان ابزار ابزارک طبقه بندی می شود. همچنین، می توان برنامه های غیر GUI مانند ابزار خط فرمان و کنسول برای سرورها توسعه داد. نمونه ای از چنین برنامه غیر GUI با استفاده از Qt فریمورک وب Cutelyst است.

Qt از کامپایلرهای مختلفی از جمله کامپایلر++GCC C و مجموعه ویژوال استودیو پشتیبانی می کند و از پشتیبانی بین المللی گسترده ای برخوردار است. Qt همچنین Qt Quick را ارائه می دهد، که شامل یک زبان برنامه نویسی اعلانی به نام QML است که با استفاده از جاوااسکریپت امکان ارائه منطق را فراهم می کند. با استفاده از Qt Quick، توسعه سریع برنامه برای دستگاه های تلفن همراه امکان پذیر شد، در حالی که منطق را می توان برای دستیابی به بهترین عملکرد ممکن، با کد نیتیو نیز نوشت. سایر ویژگی ها شامل دسترسی به پایگاه داده SQL، تجزیه و تحلیل XML، تجزیه JSON، مدیریت موضوعات و پشتیبانی شبکه است.

wxWidgets

wxWidgets یک ابزار و کتابخانه ابزار برای ایجاد رابط های کاربر گرافیکی (GUI) برای برنامه های cross-platform است. wxWidgets کد GUI برنامه را قادر می سازد در چندین سیستم عامل رایانه ای با حداقل تغییر یا بدون تغییر کد کامپایل و اجرا شود. انتخاب گسترده ای از کامپایلرها و ابزارهای دیگر برای استفاده با wxWidgets توسعه برنامه های پیشرفته را تسهیل می کند. wxWidgets از طیف گسترده ای از سیستم عامل های محبوب و کتابخانه های گرافیکی، اختصاصی و رایگان پشتیبانی می کند و به طور گسترده در سازمان های برجسته مستقر می شود. این نرم افزار رایگان و اپن سورس است، با توجه به مجوز wxWidgets، توزیع شده است ، و کسانی که مایل به تولید برای GPL و نرم افزار اختصاصی هستند ، راضی می کند.

مثال های سی پلاس پلاس (++C)

برای نوشتن اولین برنامه ++C، کنسول ++C را باز کرده و کد زیر را بنویسید:

#include <iostream.h>  
#include<conio.h>  
void main () {  
   clrscr();  
   cout << "Welcome to ++C Programming.";   
   getch();  
}  

#include <iostream.h>

شامل توابع کتابخانه استاندارد ورودی و خروجی است و متدهای cin و cout را برای خواندن از ورودی و نوشتن در خروجی به ترتیب فراهم می کند.

#include <conio.h>

شامل توابع کتابخانه ورودی و خروجی کنسول است. تابع getch در فایل conio.h تعریف شده است.

void main ()

تابع main نقطه ورودی هر برنامه در زبان ++C است. کلمه کلیدی void مشخص می کند که هیچ مقدار بازگشت نمی دهد و خروجی ندارد.

cout << 'Welcome to ++C Programming'

دستور cout برای ارسال یک عبارت یا متغییر به خروجی کنسول استفاده می شود. در اینجا عبارت Welcome to C++ Programming در خروجی چاپ می شود.

getch ()

این تابع یک تک کاراکتر را درخواست می کند. تا زمانی که کلیدی را فشار دهید، صفحه را مسدود می کند.

    آیا این نوشته را دوست داشتید؟