English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات لمكتبة C++

تحكم في عملية C++

الوظائف في C++

مجموعات و سلاسل C++

هياكل بيانات C++

فئات و كائنات C++

المراجع في C++

الوراثة في C++

دليل C++ STL

دليل مرجعي لـ C++

تحويلات القسري في C++

عناصر الحساب في C++

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

معظم مبرمجي C++ يدعمون معظم التحويلات القسريه العامة:

(type) تعبير

حيث، type هو نوع البيانات بعد التحويل. فيما يلي قائمة بالتحويلات القسريه التي يدعمها C++:

  • const_cast<type> (expr): يستخدم عمودي التحويل القسري لتحرير خصائص const / volatile للنوع. يجب أن يكون النوع المستهدف متطابقًا مع النوع المصدر، باستثناء خصائص const أو volatile. هذا النوع من التحويلات يستخدم لمعالجة خصائص const للكائن المرسل، يمكن إضافة خصائص const، أو إزالتها.

  • dynamic_cast<type> (expr): يقوم عمودي التحويل القسري بتحويل في وقت التشغيل، ويحقق صحة التحويل. إذا لم يتم التحويل، يفشل التحويل، ويتم اعتبار تعبير expr كـ null. عند تنفيذ التحويل الديناميكي بواسطة dynamic_cast، يجب أن يكون نوع type إشارة إلى الفئة، أو مرجع إلى الفئة، أو void*، إذا كان نوع type إشارة إلى الفئة، فإن expr يجب أن يكون إشارة، إذا كان type مرجع، فإن expr يجب أن يكون مرجعًا.

  • reinterpret_cast<type> (expr): يحول عمودي التحويل القسري إشارة إلى نوع آخر من الإشارات. يمكنه تحويل إشارة إلى عدد صحيح، أو عدد صحيح إلى إشارة.

  • static_cast<type> (expr): يقوم عمودي التحويل القسري بتحويل غير ديناميكي، بدون فحص فئات في وقت التشغيل لضمان أمان التحويل. على سبيل المثال، يمكن استخدامه لتحويل إشارة الفئة الأساسية إلى إشارة الفئة الفرعية.

كل التحويلات القسريه للعناصر المستخدمة في الفئات والكائنات. الآن، انظر إلى المثال التالي لفهم كيفية استخدام التحويل القسري البسيط في C++. احفظ البرنامج التالي في ملف test.cpp، قم بتشغيله.

#include <iostream>
استخدام مجال std;
 
int main()
{
   double a = 21.09399;
   float b = 10.20;
   int c;
 
   c = (int) a;
   cout << "السطر الأول - (int)a يساوي :" << c << endl;
   
   c = (int) b;
   cout << "السطر الثاني - (int)b يساوي :" << c << endl;
   
   return 0;
}

عندما يتم تجميع وكتابة الشيفرة المذكورة أعلاه وتنفيذها، ستظهر النتائج التالية:

السطر الأول - (int)b يساوي :21
السطر الثاني - (int)b يساوي :10

عناصر الحساب في C++