محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت C و ++C در چیست؟ به زبان خیلی ساده

تفاوت زبان C و زبان C++ در چیست؟ قبلا در خصوص تفاوت زبانهای برنامه نویسی ASP.NET و PHP در انجمن تخصصی فناوری اطلاعات ایران مقاله ای کامل را ارائه کردیم . همانطور که می دانید بنده برنامه نویس نیستم ، شاید در حد یک اسکریپت نویسی ساده برنامه نویسی بلد باشم اما به هر حال به عنوان یک کارشناس فناوری اطلاعات و شخصی که در زمینه های مختلف مشغول به فعالیت است باید درک درستی از تفاوت زبان های برنامه نویسی نیز داشته باشم

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

تفاوت C و C++

در این مطلب می خواهیم دو زبان برنامه نویسی C و ++C را با هم مقایسه کنیم. C و ++C هر دو یک زبان برنامه نویسی هستند و بعدها توضیح خواهیم داد که تفاوت زبان برنامه نویسی و زبان اسکریپت نویسی در چیست. زبان برنامه نویسی C یک زبان Procedural یا رویه ای است در حالیکه زبان برنامه نویسی ++C یک زبان برنامه نویسی Object Oriented یا شیء گرا است. مشکلاتی و مواردی در زبان برنامه نویسی C وجود داشت که بر اساس همین مشکلات زبان برنامه نویسی ++C طراحی و ارائه شد.

بنابراین ++C برگرفته ای از زبان برنامه نویسی C است . با توجه به اینکه مبنای ساختاری ++C بر اساس کلاس ها است ، نسخه های اولیه ای که از ++C ارائه شده بود به عنوان C With Classes مطرح شد یعنی اضافه شدن Class به C ، مهمترین تفاوت ها در بحث ارث بری از Object ها و ایجاد شدن Class ها بود اما امروزه اکثر برنامه هایی که به زبان C نوشته می شوند توسط کامپایلر زبان ++C قابل کامپایل هستند.

تفاوت C و C++ در چیست

زبان برنامه نویسی C چیست؟

زبان برنامه نویسی C در سال 1972 در آزمایشگاه Bell یا Bell Labs طراحی و پیاده سازی شد. این زبان برنامه نویسی بصورت عمده برای استفاده در سیستم عامل UNIX طراحی و پیاده سازی شد. علاوه بر اینکه شما از زبان C برای نوشتن برنامه های سیستمی استفاده می کنید این زبان را می توان برای نوشتن نرم افزارهای کاربردی و حتی نرم افزارهای پرتابل نیز مورد استفاده قرار داد. طبیعی است که C در مقایسه با زبان سطح پایینتری مثل Assembly دارای رابط کاربری و قالب کاری ساده تری است و با ارائه شدن این زبان برنامه نویسی تحولی در دنیای برنامه نویسی به وجود آمد.

زبان برنامه نویسی C یک زبان ساختارمند است و به شما اجازه استفاده از متغیرهای بازگشتی و همچنین متغیرهای وابسته را می داد ، البته دوستان با توجه به اینکه بنده دانش برنامه نویسی سطح پایین ندارم بهتر است واژه های انگلیسی این موارد را نیز در کنار آنها بیاورم ، ترجمه توابع بازگشتی به شکل Recursive Variable و ترجمه متغیرهای وابسته Lexical Variable است ، اگر اشکالی در این موارد می بینید خوشحال می شویم در ادامه مطلب آن را بیان کنید.

مقایسه C و C++

در زبان برنامه نویسی C عملیات های غیر عمدی و اشتباهات ناشی از آن با توجه به ساختار Static Type System به نسبت زبان های قبلی بسیار کمتر شده است. توابع در زبان C شامل همه کدهای اجرایی هستند و پارامترهای مربوط به توابع با استفاده از مقادیر تعریف می شود. مقادیر Pointer ها زمانی استفاده می شوند که پارامترهای توابع با استفاده از Reference ها یا مرجع ها تعریف و Pass می شوند. برای تعریف وضعیت یا Statement هر قسمت از کد برنامه در C شما باید از Semicolon استفاده کنید .

کلمات کلیدی مورد استفاده در C بسیار کوتاه هستند ، امکان استفاده از عملگرهای زیادی از جمله ++ و – و – و = و غیره فراهم شده است و ... در زبان C مجموعه ای از توابع استفاده می شود ، هر برنامه در زبان C تحت یک Function یا تابع اصلی به نام main function عمل می کند. اگر استیو جابز را می شناسید ، فراموش نکنید که استیو جابز کار خود را مدیون شخص دیگری به نام دنیس ریچی است که خالق زبان برنامه نویسی C است.

زبان برنامه نویسی C++ چیست؟

++C هم یک زبان برنامه نویسی است . ++C یک زبان سطح بالا و شیء گرا است. امروزه بیشتری استفاده برای برنامه نویسی از زبان ++C است و بیشتر نرم افزارهای سیستمی از طریق این زبان برنامه نویسی نوشته می شوند. زبان ++C توسط لابراتوار Bell یا همان Bell Labs به عنوان یک نسخه جدید از زبان برنامه نویسی C طراحی و پیاده سازی شد. برخی از مهمترین امکاناتی که در زبان برنامه نویسی ++C اضافه شدن است شامل template ها ، class ها ، توابع مجازی یا virtual function ها و operator overloading می شود.

مدیریت خطاها یا Exception Handling و همچنین ارث بری چندگانه یا multiple inheritances در برنامه نویسی ++C معرفی شدند. در مقایسه با برنامه نویسی C قابلیت های Type Checking بیشتری به این زبان اضافه شده است. با توجه به اینکه این زبان برنامه نویسی به عنوان یک نسخه جدید از زبان برنامه نویسی C ارائه شد تقریبا اکثر قابلیت هایی که در C وجود دارد در ++C پشتیبانی و نگهداری می شود. حتی کامپایلر زبان برنامه نویسی ++C قادر است برنامه هایی که به زبان C نوشته شده اند را نیز کامپایل کند.

البته خواه ناخواه برخی از کدهای نوشته شده به زبان C قابلیت اجرا شدن در ++C را ندارند ، به ویژه همان نسخه اولیه C که برای سیستم عامل UNIX طراحی شده بود.کدهای نوشته در زبان ++C به عنوان کدهایی با قابلیت استفاده مجددا یا Reusable Code معروف هستند به این معنا که شما می توانید تغییراتی در کدهای نرم افزار بدون انجام دادن تغییرات اصلی در خود نرم افزار ایجاد کرده و در جای دیگری استفاده کنید.

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

تفاوت زبان برنامه نویسی C و ++C در چیست ؟

  • ++C توسعه یافته و در واقع نسخه جدید برنامه نویسی C به حساب می آید
  • در ++C شما قابلیت استفاده مجدد از کد یا Reusable Code را دارید که در C این امکان نیست.
  • زبان C یک زبان Procedural است و ++C یک زبان Object Oriented است
  • زبان C چیزی به نام Virtual Function نداشت اما در ++C توابع مجازی یا Virtual Function ها معرفی شدند
  • در زبان C قابلیت چندوجهی یا Polymorphism وجود نداشت اما در ++C قابلیت Polymorphism اضافه شده است ، Polymorphism مهمترین قسمت از برنامه نویسی OOPS است.
  • در C امکان Operator Overloading وجود نداشت اما در ++C این قابلیت یکی از بهترین امکانات به حساب می آید
  • مبانی برنامه نویسی در C بصورت بالا به پایین است در حالیکه در ++C طراحی برنامه بصورت پایین به بالا انجام می شود
  • متصل کردن داده ها و توابع در C بسیار سخت بود اما در ++C این فرآیند با استفاده از Object ها به راحتی انجام می شود
  • در C شما در هر تابعی می توانستید تابع main را فراخوانی کنید اما در ++C شما نمی توانید اینکار را بکنید.
  • ارث بری در C بی معنی بود اما در ++C فرآیند ارث بری یا Inheritance قابل پیاده سازی است
  • مدیریت خطاها در C بسیار سخت تر از ++C است ، با توجه به اینکه از Class در ++C استفاده می شود

محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات