تحويل الأنواع - الجزء الأول
جزء من قسم الأساسيات في رحلة 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++، لأنه يجعل التحويل واضحًا ويفحصه المصرّف.
التحدي
مبتدئاكتب برنامجًا بلغة 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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثانيتدرّب بنفسك: مترجم C++ عبر الإنترنت