Menu
CoddyTech

تحويل الأنواع - الجزء الأول

جزء من قسم الأساسيات في رحلة 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++ الحديثة، لأنه يجعل التحويل واضحًا ويخضع لفحص المترجم.

challenge icon

التحدي

مبتدئ

اكتب برنامجًا بلغة C++ يوضّح تحويل الأنواع. نفّذ ما يلي:

حوّل المتغير price إلى int وخزّن النتيجة في متغير جديد اسمه intPrice.

جرّب بنفسك

    int intPrice = ?; // تحويل نوع صريح من double إلى int
    
    
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم C++ عبر الإنترنت