Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 14 من 74.

تحويل الأنواع هو عملية تحويل قيمة من نوع بيانات إلى آخر.

في C++، يمكننا تحويل الأعداد الصحيحة إلى double، وتحويل double إلى أعداد صحيحة، وغير ذلك. هناك نوعان من casting: ضمني (automatic) وصريح (يدوي).

على سبيل المثال Integer to Double:

التحويل الضمني (التلقائي):

int number = 5;
double decimal = number; // يصبح تلقائياً 5.0

// مع الحساب
int x = 7;
double result = x / 2.0; // النتيجة هي 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<>() هو الأسلوب الموصى به في modern C++، لأنه يجعل التحويل واضحًا ويفحصه المصرّف.

challenge icon

التحدي

مبتدئ

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

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

جرّب بنفسك

#include <iostream>

int main() {
    // تعريف وتهيئة المتغيرات
    double price = 99.99;
    int intPrice = ?; // تحويل صريح من double إلى int
    
    
    // إخراج القيم
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconاختبر نفسك

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

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

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