تحويل الأنواع - الجزء الأول
جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 14 من 74.
تحويل النوع هو عملية تحويل قيمة من نوع بيانات إلى نوع آخر.
في C++، يمكننا تحويل الأعداد الصحيحة إلى أعداد عشرية، والأعداد العشرية إلى أعداد صحيحة، وغير ذلك. هناك نوعان من التحويل: الضمني (تلقائي) والصريح (يدوي).
على سبيل المثال Integer to Double:
التحويل الضمني (التلقائي):
int number = 5;
double decimal = number; // يصبح 5.0 تلقائيًا
// مع إجراء عملية حسابية
int x = 7;
double result = x / 2.0; // قيمة result هي 3.5ملاحظة: عند قسمة قيمتين من النوع int، يُجري C++ قسمة صحيحة: يُحذف الجزء العشري. على سبيل المثال، تعطي 7 / 2 الناتج 3، وليس 3.5. للحصول على نتيجة عشرية، يجب أن يكون أحد المعاملين على الأقل من النوع double (مثلًا، تعطي 7 / 2.0 الناتج 3.5).
التحويل الصريح (اليدوي) للنوع Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // يصبح 9 (يُحذف الجزء العشري)
// مع الحساب
double price = 19.99;
int roundedPrice = (int) price; // يصبح 19الأسلوب المفضّل في C++ الحديثة: بدلًا من التحويل بأسلوب C (int) decimal، من الأفضل استخدام static_cast<>()، فهو أكثر أمانًا ويوضح غرضك بجلاء:
double decimal = 9.7;
int number = static_cast<int>(decimal); // تصبح القيمة 9 (يُحذف الجزء العشري)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // تصبح القيمة 19ملاحظة: ينتج كلٌّ من (int) value وstatic_cast<int>(value) النتيجة نفسها هنا، لكن static_cast<>() هو الأسلوب الموصى به في C++ الحديثة، لأنه يجعل التحويل واضحًا ويخضع لفحص المترجم.
التحدي
مبتدئاكتب برنامجًا بلغة C++ يوضّح تحويل الأنواع. نفّذ ما يلي:
حوّل المتغير price إلى int وخزّن النتيجة في متغير جديد اسمه intPrice.
جرّب بنفسك
int intPrice = ?; // تحويل نوع صريح من double إلى int
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثانيتدرّب بنفسك: مترجم C++ عبر الإنترنت