سی‌پلاس‌پلاس 

context: C++ (بخوانید سی‌پلاس‌پلاس ‎/ˌsiːˌplʌsˈplʌs/‎) یک زبان برنامه‌نویسی همه‌منظوره، همگردان، سطح میانی، شیءگرا و چندرگه است که از برنامه‌نویسی رویه‌ای، تجرید داده‌ها و برنامه‌نویسی شیءگرا پشتیبانی می‌کند. این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه‌شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شیءگرا، برنامه‌نویسی جنریک است. از آنجا که در ++C اشیاء را می‌توان ابتدا به ساکن از کلاس‌هایی ایجاد کرد که به هیچگونه سلسله مراتب رده‌ها و وراثت مقید نیستند، لذا ++C از برنامه‌سازی شیء بنیاد (object-based programming) نیز پشتیبانی می‌کند. C++ به همراه جد خود C از پرطرفدارترین زبان‌های برنامه‌نویسی هستند.
qas: answers: text: یک زبان برنامه‌نویسی همه‌منظوره، همگردان، سطح میانی، شیءگرا و چندرگه است که از برنامه‌نویسی رویه‌ای، تجرید داده‌ها و برنامه‌نویسی شیءگرا پشتیبانی می‌کند
question: سی‌پلاس‌پلاس چیست؟

answers: text: انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه‌شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شیءگرا، برنامه‌نویسی جنریک است
question: سی‌پلاس‌پلاس دارای چه قابلیت هایی است؟

answers: text: سی‌پلاس‌پلاس
question: نام پرطرفدارترین زبان‌های برنامه‌نویسی را بنویسید

question: برنامه‌نویسی چیست؟

question: اولین زبان برنامه نویسی چه بود؟

question: اولین زبان برنامه نویسی توسط چه کسی ابداع شد؟

context: استراس‌تروپ کار بر روی زبان «C دارای کلاس» را در سال ۱۹۷۹ آغاز کرد. ایدهٔ ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌هایی مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفادهٔ عملی بسیار کند است اما بی‌سی‌پی‌ال با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته یونیکس با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که یک زبان عمومی، سریع، قابل حمل، و در سطح گسترده‌ای در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL ۶۸، ADA, CLU, ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتدا ویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون‌خطی و آرگومان‌های پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخهٔ تجاری در سال ۱۹۸۵ ارائه شد.
qas: answers: text: ۱۹۷۹

text: سال ۱۹۷۹

text: در سال ۱۹۷۹
question: استراس‌تروپ کار بر روی زبان سی دارای کلاس را از چه سالی آغاز کرد؟

answers: text: ایدهٔ ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود.
question: ایده ساخت زبان سی دارای کلاس چه زمانی به ذهن استراس‌تروپ خطور نمود؟

answers: text: آزمایشگاه‌های بل
question: استراس‌تروپ کار خود را در چه آزمایشگاهی آغاز نمود؟

answers: text: با مشکل تحلیل هسته یونیکس با توجه به محاسبات توزیع شده روبرو شده بود
question: زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل آغاز نمود با چه مشکلاتی مواجه شد؟

question: استراس‌تروپ اهل کدام کشور بود؟

question: استراس‌تروپ در چه دانشگاهی تحصیل می‌کرد؟

context: در سال ۱۹۸۳ نام زبان از «C با کلاس» به C++ تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر به‌صورت آزاد، کنترل نوع بهتر، و توضیحات یک‌خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی C++ انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی‌ای وجود نداشت. در سال ۱۹۸۹ ویرایش ۲٫۰ از زبان C++ ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توابع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع C++» منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.
qas: answers: text: ۱۹۸۳

text: سال ۱۹۸۳

text: در سال ۱۹۸۳
question: در چه سالی نام زبان سی با کلاس به سی‌پلاس‌پلاس تغییر یافت؟

answers: text: ۱۹۸۵

text: سال ۱۹۸۵

text: در سال ۱۹۸۵
question: در چه سالی اولین نسخه زبان برنامه‌نویسی سی‌پلاس‌پلاس انتشار یافت؟

answers: text: ۱۹۸۹

text: سال ۱۹۸۹

text: در سال ۱۹۸۹
question: در چه سالی ویرایش ۲۰ از زبان سی‌پلاس‌پلاس ارائه شد؟

answers: text: ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توابع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد

text: ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توابع، اعضای ثابت تابع، و اعضای حفاظت شده
question: در ویرایش ۲۰ در سی‌پلاس‌پلاس چه ویژگی‌هایی به آن اضافه شده بود؟

answers: text: ۱۹۹۰

text: سال ۱۹۹۰

text: در سال ۱۹۹۰
question: در چه سالی راهنمای مرجع سی‌پلاس‌پلاس منتشر شد؟

answers: text: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی
question: آخرین ویژگی‌های اضافه شده به زبان سی‌پلاس‌پلاس چه بود؟

question: قالب توابع در برنامه نویسی را تعریف کنید

context: قالب‌ها متفاوت با ماکروها هستند. در حالی که از هر دوی این ویژگی‌ها در زمان کامپایل برای ایجاد کامپایل شرطی استفاده می‌شوند قالب‌ها محدود به تغییرات لغوی و متنی نیستند. قالب‌ها با آگاهی از معنا و سیستم نوع در زبان استفاده شده و سایر ویژگی‌های زمان کامپایل می‌توانند از عملیات سطح بالا برای کنترل ترتیب اجرا براساس نوع پارامترها استفاده نمایند. ماکروها کنترل خود را بر کامپایل از طریق ویژگی‌های از پیش تعیین شده انجام می‌دهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند. به زبان دیگر ماکروها کنترل خود را با استفاده از نشانه‌های از پیش تعیین شده انجام می‌دهند اما همانند قالب‌ها نمی‌توانند نشانه‌ها را خود ایجاد نمایند. قالب‌ها ابزاری برای چندریختی ایستا و برنامه‌نویسی جنریک است؛ مثلاً جایگزین معادل با استفاده از قالب‌ها برای عبارت خطرناک #define max(x, y) ((x)> (y) ? (x) : (y)) در پایین نشان داده شده‌است.
qas: question: ماکرو چیست؟

answers: text: قالب‌ها متفاوت با ماکروها هستند. در حالی که از هر دوی این ویژگی‌ها در زمان کامپایل برای ایجاد کامپایل شرطی استفاده می‌شوند قالب‌ها محدود به تغییرات لغوی و متنی نیستند. قالب‌ها با آگاهی از معنا و سیستم نوع در زبان استفاده شده و سایر ویژگی‌های زمان کامپایل می‌توانند از عملیات سطح بالا برای کنترل ترتیب اجرا براساس نوع پارامترها استفاده نمایند
question: قالب‌های برنامه نویسی چگونه هستند؟

answers: text: از طریق ویژگی‌های از پیش تعیین شده انجام می‌دهند ولی قادر به ایجاد انواع جدید و کنترل نوع نیستند و فقط محدود به تغییرات متنی پیش از کامپایل هستند.
question: ماکروها کنترل خود را بر کامپایل از چه طریق انجام می‌دهند؟

answers: text: ابزاری برای چندریختی ایستا و برنامه‌نویسی جنریک است
question: قالب‌ها چگونه ابزاری هستند؟

context: وراثت این امکان را ایجاد می‌کند که یک نوع ویژگی دیگر انواع را داشته باشد. وراثت از یک کلاس پایه می‌تواند عمومی، خصوصی یا حفاظت شده باشد. این تعیین سطح دسترسی مشخص می‌سازد آیا کلاس‌های نامربوط یا مشتق شده می‌توانند به اعضای عمومی یا حفاظت شده کلاس پایه دسترسی داشته باشند. تنها وراثت عمومی به معنای وراثت به کار رفته به صورت عموم است. دو نوع دیگر وراثت به ندرت مورد استفاده قرار می‌گیرند. اگر تعیین‌کننده سطح دسترسی حذف شود سطح دسترسی برای کلاس خصوصی و برای ساختمان به صورت عمومی تعریف می‌گردد. کلاس‌های پایه ممکن است به صورت مجازی تعریف شوند که به آن وراثت مجازی گویند. وراثت مجازی تضمین می‌کند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه به وجود نیاید.
qas: answers: text: می‌تواند عمومی، خصوصی یا حفاظت شده باشد

text: عمومی، خصوصی یا حفاظت شده
question: وراثت از یک کلاس پایه چه ویژگی‌هایی می‌تواند داشته باشد؟

answers: text: کلاس‌های پایه ممکن است به صورت مجازی تعریف شوند که به آن وراثت مجازی گویند
question: وراثت مجازی چیست؟

answers: text: تضمین می‌کند که فقط یک نمونه از کلاس پایه وجود داشته باشد و مشکلاتی همانند مشکلات وراثت چندگانه به وجود نیاید.
question: وراثت مجازی چه چیزی را تضمین می‌کند؟

context: وراثت چندگانه یکی از ویژگی‌های مورد بحث در ++C است. وراثت چندگانه امکان اشتقاق از چند کلاس پایه را فراهم می‌نماید که موجب به وجود آمدن گراف رابطه وراثت بسیار پیچیده‌است. به عنوان مثال «گربه پرنده» می‌تواند از کلاس «گربه» و کلاس «پستانداران پرنده» ارث برد. در زبان‌های دیگر مانند سی‌شارپ و جاوا به صورت دیگری ویژگی مشابه را پیاده‌سازی می‌نماید هر کلاس می‌تواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد (واسط‌ها برخلاف کلاس پایه فقط تعریف هستند و هیچ‌گونه پیاده‌سازی را شامل نمی‌گردند).
qas: answers: text: وراثت چندگانه
question: یکی از ویژگی‌های مورد بحث در سی‌پلاس‌پلاس چیست؟

answers: text: امکان اشتقاق از چند کلاس پایه
question: وراثت چندگانه چه امکانی را فراهم می‌نماید؟

answers: text: موجب به وجود آمدن گراف رابطه وراثت بسیار پیچیده‌است
question: وراثت چندگانه موجب به وجود آمدن چه چیزی می‌شود؟

answers: text: هر کلاس می‌تواند از چندین واسط اشتقاق یابد اما فقط یک کلاس پایه برای اشتقاق وجود دارد (واسط‌ها برخلاف کلاس پایه فقط تعریف هستند و هیچ‌گونه پیاده‌سازی را شامل نمی‌گردند).
question: در سی‌شارپ و جاوا کلاس‌های آن‌ها چگونه است؟