2012-10-02 12 views
7

निम्नलिखित एक डाली है?टी (एक्स) एक कास्ट माना जाता है? ,</p> <pre><code>int foo = (int) somefloat; </code></pre> <p>हालांकि यह एक डाली माना जाता है:

int foo = int(somefloat); 

इससे भी महत्वपूर्ण बात है, अगर वहाँ दोनों के बीच एक अंतर है, संकलित परिणामस्वरूप कोड अलग है?

+2

कोई अंतर नहीं, वास्तव में। – chris

उत्तर

5

दूसरा उदाहरण अक्सर फ़ंक्शन स्टाइल कास्ट कहा जाता है और सी ++ में जोड़ा गया था लेकिन अर्थशास्त्र/ऑब्जेक्ट कोड के मामले में दोनों के बीच कोई अंतर नहीं है।

What exactly is or was the purpose of C++ function-style casts?

+0

कूल। इसके लिए धन्यवाद! – MarkP

2

, हालांकि केवल पहला उदाहरण सी में इस्तेमाल किया जा सकता C++ में आप दोनों का उपयोग कर सकते हैं परिणाम की कोई अंतर नहीं है:

यहाँ कि ढंग से काम शैली डाले जोड़ा गया था कारण का एक अच्छा व्याख्या दी गई है ।

+0

क्या दूसरा अभी भी सी-स्टाइल कास्ट माना जाएगा? – MarkP

+0

@ मार्कप सेकंड सी ++ है, सी में आप त्रुटि के साथ समाप्त हो जाएगा। – Zaffy

+0

@ मार्कप हां, यह अभी भी इसके सभी नुकसान के साथ एक सी-शैली कास्ट है। – xaizek

1

हां, यह भी एक कलाकार है। सी ++ कास्टिंग की इस शैली को सक्षम बनाता है, सी में केवल (type)expression स्वरूप रहता है। वे बराबर हैं।