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

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

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

تحويل النوع (Type casting) هو عملية تحويل قيمة من نوع بيانات إلى آخر.

في ++C، يمكننا تحويل الأعداد الصحيحة إلى أعداد عشرية، والأعداد العشرية إلى أعداد صحيحة، والمزيد. هناك نوعان من التحويل (casting): تحويل ضمني (تلقائي) وتحويل صريح (يدوي).

على سبيل المثال 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 الحديثة: بدلاً من التحويل البرمجي (cast) بأسلوب لغة 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++ الحديثة لأنه يجعل عملية التحويل مرئية بوضوح ويتم فحصها بواسطة المترجم (compiler).

challenge icon

التحدي

مبتدئ

اكتب برنامج C++‎ يوضح تحويل النوع (type casting). قم بما يلي:

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

ورقة مرجعية

تحويل النوع (Type casting) يقوم بتحويل القيم من نوع بيانات إلى آخر.

التحويل الضمني (التلقائي) — يحدث تلقائياً:

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

int x = 7;
double result = x / 2.0; // النتيجة هي 3.5 (قسمة int/int تتجاهل الجزء العشري)

التحويل الصريح (اليدوي) — بأسلوب لغة C و static_cast الحديث:

double price = 19.99;

int a = (int) price;                  // أسلوب C: يصبح 19
int b = static_cast<int>(price);     // المفضل في C++ الحديثة: يصبح 19

ملاحظة: تحويل double إلى int يؤدي إلى بتر (حذف) الجزء العشري. يُفضل استخدام static_cast<>() في لغة C++ الحديثة من أجل الوضوح وسلامة المترجم (compiler safety).

جرّب بنفسك

#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اختبر نفسك

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

جميع دروس Fundamentals