คำถามติดแท็ก nullptr

13
nullptr คืออะไร
ตอนนี้เรามี C ++ 11 พร้อมคุณสมบัติใหม่มากมาย อันใหม่ที่น่าสนใจและสับสน (อย่างน้อยสำหรับฉัน) คือสิ่งใหม่nullptrเป็นใหม่ ไม่จำเป็นสำหรับแมโครที่น่ารังเกียจอีกต่อไปNULLแล้ว int* x = nullptr; myclass* obj = nullptr; ถึงกระนั้นฉันก็ยังไม่ได้nullptrผล ตัวอย่างเช่นบทความ Wikipediaพูดว่า: C ++ 11 แก้ไขสิ่งนี้โดยการแนะนำคำสำคัญใหม่เพื่อใช้เป็นค่าคงที่ตัวชี้โมฆะที่แตกต่าง: nullptr มันเป็นประเภท nullptr_tซึ่งสามารถแปลงได้โดยปริยายและสามารถเทียบได้กับชนิดตัวชี้หรือชนิดตัวชี้ไปยังสมาชิก มันไม่สามารถเปลี่ยนแปลงได้โดยปริยายหรือเทียบเคียงได้กับชนิดอินทิกรัลยกเว้นสำหรับบูล มันเป็นคำหลักและตัวอย่างของประเภทได้อย่างไร นอกจากนี้คุณยังมีตัวอย่างอีก (นอกเหนือจาก Wikipedia) ซึ่งnullptrดีกว่าเก่า0หรือไม่
570 c++  pointers  c++11  nullptr 

7
ข้อดีของการใช้ nullptr คืออะไร
ชิ้นส่วนของรหัสนี้แนวคิดจะเป็นสิ่งเดียวกันสำหรับสามตัวชี้ (เริ่มต้นชี้ปลอดภัย): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; ดังนั้นสิ่งที่เป็นข้อดีของการกำหนดตัวชี้nullptrมากกว่ากำหนดให้ค่าNULLหรือ0?
163 c++  c++11  null  c++-faq  nullptr 

1
การใช้ c ++ nullptr ทำงานอย่างไร
ฉันอยากรู้ว่าnullptrทำงานอย่างไร มาตรฐาน N4659 และ N4849 พูดว่า: มันจะต้องมีประเภทstd::nullptr_t; คุณไม่สามารถใช้ที่อยู่ของมัน มันสามารถแปลงเป็นตัวชี้และตัวชี้ไปยังสมาชิกโดยตรง sizeof(std::nullptr_t) == sizeof(void*); การแปลงboolเป็นfalse; ค่าของมันสามารถแปลงเป็นประเภทอินทิกรัลเหมือนกัน(void*)0แต่ไม่ย้อนหลัง ดังนั้นมันจึงเป็นค่าคงที่ที่มีความหมายเหมือน(void*)0กัน แต่มีชนิดที่แตกต่างกัน ฉันพบการใช้งานstd::nullptr_tบนอุปกรณ์ของฉันและเป็นดังนี้ #ifdef _LIBCPP_HAS_NO_NULLPTR _LIBCPP_BEGIN_NAMESPACE_STD struct _LIBCPP_TEMPLATE_VIS nullptr_t { void* __lx; struct __nat {int __for_bool_;}; _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR nullptr_t() : __lx(0) {} _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR nullptr_t(int __nat::*) : __lx(0) {} _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR operator int __nat::*() const {return …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.