c++ - special rule of static_cast -


मैंने नियम पढ़ा है।

  static_cast & lt; New_type & gt; (अभिव्यक्ति)  

... ...

5) यदि अभिव्यक्ति के प्रकार के लिए new_type से एक अंतर्निहित रूपांतरण अनुक्रम मौजूद है, इसमें lvalue-to -वर्तमान, सरणी-टू-पॉइंटर, फ़ंक्शन-टू-पॉइंटर, नल पॉइंटर, रिक्त सदस्य पॉइंटर, या बूलियन रूपांतरण, फिर static_cast उस अंतर्निहित रूपांतरण के व्युत्क्रम का प्रदर्शन कर सकता है;

प्रश्न क्या कोई इस नियम के लिए उदाहरण समझा सकता है या उदाहरण लिख सकता है?

यह एक अंतर्निहित रूपांतरण है:

  int n; शून्य * पी = & amp; एन; // ठीक है: शून्य से पूर्णांक * एक अंतर्निहित अभिप्रेत है  

व्युत्क्रम रूपांतरण निहित नहीं किया जा सकता है:

  int * pi = p; // त्रुटि  

लेकिन, उस नियम से, static_cast :

  int * pi = static_cast & lt; int के साथ किया जा सकता है * & gt; (पी); // ओक  

नियम कुछ अंतर्निहित रूपांतरणों को सूचीबद्ध करता है जिन्हें static_cast :

  bool b = p के साथ उलट नहीं किया जा सकता है ; // ओके: शून्य * शून्य * निहित शून्य हो सकता है * p2 = static_cast & lt; शून्य * & gt; (बी); // त्रुटि: static_cast  
के साथ पूर्ववत नहीं किया जा सकता है

Comments