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

C ++ เป็นภาษาโปรแกรมทั่วไป เดิมได้รับการออกแบบให้เป็นส่วนขยายของ C และมีไวยากรณ์ที่คล้ายกัน แต่ตอนนี้มันเป็นภาษาที่แตกต่างอย่างสิ้นเชิง ใช้แท็กนี้สำหรับคำถามเกี่ยวกับรหัส (จะ) คอมไพล์ด้วยคอมไพเลอร์ C ++ ใช้แท็กเฉพาะรุ่นสำหรับคำถามที่เกี่ยวข้องกับการแก้ไขมาตรฐานเฉพาะ [C ++ 11], [C ++ 14], [C ++ 17] หรือ [C ++ 20] เป็นต้น


13
ระบบ (“หยุด”); - ทำไมถึงผิด?
นี่เป็นคำถามที่ฉันไม่ค่อยเข้าใจ: คำสั่งsystem("pause");นี้ได้รับการสอนให้กับโปรแกรมเมอร์มือใหม่เป็นวิธีหยุดโปรแกรมชั่วคราวและรอการป้อนข้อมูลด้วยแป้นพิมพ์เพื่อดำเนินการต่อ อย่างไรก็ตามดูเหมือนว่าโปรแกรมเมอร์รุ่นเก๋าหลายคนจะขมวดคิ้วว่าเป็นสิ่งที่ไม่ควรทำในระดับที่แตกต่างกัน บางคนบอกใช้ได้ดี บางคนบอกว่าจะใช้เฉพาะเมื่อคุณถูกขังอยู่ในห้องของคุณและไม่มีใครเฝ้าดู บางคนบอกว่าพวกเขาจะมาที่บ้านของคุณเป็นการส่วนตัวและฆ่าคุณถ้าคุณใช้มัน ฉันเองเป็นโปรแกรมเมอร์มือใหม่ที่ไม่มีการฝึกอบรมการเขียนโปรแกรมอย่างเป็นทางการ ฉันใช้มันเพราะฉันถูกสอนให้ใช้มัน สิ่งที่ฉันไม่เข้าใจคือถ้ามันไม่ใช่ของที่จะใช้ทำไมฉันถึงถูกสอนให้ใช้? หรือในทางกลับกันมันไม่ได้แย่ขนาดนั้นเลยเหรอ? คุณคิดอย่างไรกับเรื่องนี้
131 c++ 

20
ข้อผิดพลาด LNK2038: ตรวจพบไม่ตรงกันสำหรับ '_ITERATOR_DEBUG_LEVEL': ค่า '0' ไม่ตรงกับค่า '2' ใน main.obj
ฉันได้อ่านวิธีแก้ปัญหามากมาย แต่ไม่มีใครช่วยได้ ฉันพยายามทำความสะอาดสร้างใหม่ ติดตั้งวิชวล 2010 ใหม่และเปลี่ยนจากมืออาชีพเป็นสุดยอด แต่ฉันก็ยังไม่รู้ว่าทำไมฉันถึงมีข้อผิดพลาดนี้ โครงการของฉันมีลักษณะดังนี้: 1 Exe Solution เพื่อทดสอบไลบรารีแบบคงที่ของฉัน 1 ห้องสมุดแบบคงที่โซลูชัน Dll รหัสที่แปลงเป็น dll ใช้ฟังก์ชันจาก 1 lib เรียกว่า ClassificationFramework ฉันให้ lib นี้เป็นส่วนหัวและ cpp โดยทั่วไปซอร์สโค้ด ในโซลูชัน Exe ฉันเชื่อมโยงไลบรารีที่สร้างขึ้นของฉัน + libs อื่น ๆ เพื่อเรียกใช้ + ClassificationFramework.dll ทุกอย่างทำงานได้ดีเมื่อฉันใช้ Release แต่เมื่อฉันเปลี่ยนเป็น Debug (เพราะฉันต้องการแก้จุดบกพร่องบางอย่างฉันเบื่อที่จะข้ามดีบักเกอร์ในโหมดรีลีส) ฉันได้รับสิ่งนี้: 2>Link: 2> ClassificationFramework.lib(SampleClass.obj) : MSIL .netmodule or …
131 c++  debugging  linker 

4
การแปลงบูลเป็น int
การแปลงนี้เป็นแบบพกพาเพียงใด มั่นใจได้หรือไม่ว่าการยืนยันทั้งสองผ่าน int x = 4<5; assert(x==1); x = 4>5; assert(x==0); อย่าถามว่าทำไม ฉันรู้ว่ามันน่าเกลียด ขอบคุณ.
131 c++  c  c99 

3
thread_local หมายถึงอะไรใน C ++ 11
ฉันสับสนกับคำอธิบายthread_localใน C ++ 11 ความเข้าใจของฉันคือแต่ละเธรดมีสำเนาเฉพาะของตัวแปรท้องถิ่นในฟังก์ชัน ตัวแปรส่วนกลาง / คงที่สามารถเข้าถึงได้โดยเธรดทั้งหมด (อาจซิงโครไนซ์การเข้าถึงโดยใช้การล็อก) และthread_localตัวแปรสามารถมองเห็นได้สำหรับเธรดทั้งหมด แต่สามารถแก้ไขได้โดยเธรดที่กำหนดไว้เท่านั้น? ถูกต้องหรือไม่

8
อย่างเป็นทางการชื่อประเภทมีไว้เพื่ออะไร?
ในบางครั้งฉันเคยเห็นข้อความแสดงข้อผิดพลาดที่อ่านไม่ออกจริงๆบางอย่างพ่นออกมาgccเมื่อใช้เทมเพลต ... โดยเฉพาะอย่างยิ่งฉันมีปัญหาที่การประกาศที่ดูเหมือนถูกต้องทำให้เกิดข้อผิดพลาดในการคอมไพล์ที่แปลกประหลาดซึ่งหายไปอย่างน่าอัศจรรย์โดยใส่typenameคำหลักไว้ที่จุดเริ่มต้นของ การประกาศ ... (ตัวอย่างเช่นเมื่อสัปดาห์ที่แล้วฉันประกาศตัววนซ้ำสองตัวเป็นสมาชิกของคลาสเทมเพลตอื่นและฉันต้องทำสิ่งนี้) ... เรื่องราวเกี่ยวกับtypenameอะไร?
131 c++  templates 

10
การรวมเธรดใน C ++ 11
คำถามที่เกี่ยวข้อง : เกี่ยวกับ C ++ 11: C ++ 11: std :: เธรดรวม? async (เปิดตัว :: async) ใน C ++ 11 จะทำให้เธรดพูลล้าสมัยเพื่อหลีกเลี่ยงการสร้างเธรดที่มีราคาแพงหรือไม่ เกี่ยวกับ Boost: C ++ เพิ่มเธรดใช้เธรดซ้ำ เพิ่ม :: เธรดและสร้างกลุ่มของพวกเขา! ฉันจะได้รับกลุ่มเธรดเพื่อส่งงานโดยไม่ต้องสร้างและลบซ้ำแล้วซ้ำอีกได้อย่างไร ซึ่งหมายความว่าเธรดแบบถาวรจะซิงโครไนซ์ใหม่โดยไม่ต้องเข้าร่วม ฉันมีรหัสที่มีลักษณะดังนี้: namespace { std::vector<std::thread> workers; int total = 4; int arr[4] = {0}; void each_thread_does(int i) { arr[i] += …

4
GCC เริ่มต้นรวมไดเร็กทอรีอะไรบ้าง
เมื่อฉันรวบรวมไฟล์ต้นฉบับที่เรียบง่ายด้วย gcc ฉันไม่ต้องระบุพา ธ ไปยังไฟล์รวมมาตรฐานเช่น stdio หรือ stdlib GCC รู้วิธีค้นหาไฟล์เหล่านี้ได้อย่างไร มี/usr/includeเส้นทางเดินสายอยู่ภายในหรือไม่หรือจะได้รับเส้นทางจากส่วนประกอบระบบปฏิบัติการอื่น ๆ
131 c++  c  linux  gcc  include-path 

5
เมื่อใดควรใช้สารระเหยร่วมกับเธรดหลายตัว?
หากมีเธรดสองเธรดที่เข้าถึงตัวแปรโกลบอลบทช่วยสอนจำนวนมากบอกว่าทำให้ตัวแปรระเหยเพื่อป้องกันไม่ให้คอมไพลเลอร์แคชตัวแปรในรีจิสเตอร์และทำให้ไม่ได้รับการอัพเดตอย่างถูกต้อง อย่างไรก็ตามสองเธรดทั้งสองเข้าถึงตัวแปรที่ใช้ร่วมกันเป็นสิ่งที่เรียกร้องให้มีการป้องกันผ่าน mutex ไม่ใช่เหรอ? แต่ในกรณีนั้นระหว่างการล็อกเธรดและการปล่อย mutex รหัสจะอยู่ในส่วนวิกฤตที่มีเพียงเธรดเดียวเท่านั้นที่สามารถเข้าถึงตัวแปรได้ซึ่งในกรณีนี้ตัวแปรไม่จำเป็นต้องระเหย? ดังนั้นการใช้งาน / วัตถุประสงค์ของการระเหยในโปรแกรมมัลติเธรดคืออะไร?

10
'thunk' คืออะไร?
ฉันเคยเห็นมันใช้ในการเขียนโปรแกรม (โดยเฉพาะในโดเมน C ++) และไม่รู้ว่ามันคืออะไร สันนิษฐานว่าเป็นรูปแบบการออกแบบ แต่ฉันอาจผิด ใครช่วยยกตัวอย่างอันธพาลได้บ้าง?
130 c++  thunk 

6
Visual Studio ทำอะไรกับตัวชี้ที่ถูกลบและทำไม?
หนังสือ C ++ ที่ฉันอ่านระบุว่าเมื่อตัวชี้ถูกลบโดยใช้deleteโอเปอเรเตอร์หน่วยความจำในตำแหน่งที่ชี้ไปนั้น "ว่าง" และสามารถเขียนทับได้ NULLนอกจากนี้ยังระบุว่าตัวชี้จะยังคงชี้ไปที่สถานที่เดียวกันจนกว่าจะมีพระราชเสาวนีย์หรือตั้งค่า ใน Visual Studio 2012 อย่างไรก็ตาม ดูเหมือนจะไม่เป็นเช่นนั้น! ตัวอย่าง: #include <iostream> using namespace std; int main() { int* ptr = new int; cout << "ptr = " << ptr << endl; delete ptr; cout << "ptr = " << ptr << endl; system("pause"); return 0; …

4
จุดประสงค์ของยูนารี“ +” ก่อนการเรียกไปยังสมาชิก std :: numeric_limits <unsigned char> คืออะไร
ฉันเห็นตัวอย่างนี้ในเอกสารของ cppreference สำหรับstd::numeric_limits #include &lt;limits&gt; #include &lt;iostream&gt; int main() { std::cout &lt;&lt; "type\tlowest()\tmin()\t\tmax()\n\n"; std::cout &lt;&lt; "uchar\t" &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::lowest() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::min() &lt;&lt; '\t' &lt;&lt; '\t' &lt;&lt; +std::numeric_limits&lt;unsigned char&gt;::max() &lt;&lt; '\n'; std::cout &lt;&lt; "int\t" &lt;&lt; std::numeric_limits&lt;int&gt;::lowest() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::min() &lt;&lt; '\t' &lt;&lt; std::numeric_limits&lt;int&gt;::max() &lt;&lt; '\n'; …
130 c++  char  unary-operator 



29
หลักเกณฑ์ทั่วไปเพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำใน C ++ [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม &amp; ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา มีเคล็ดลับทั่วไปอะไรบ้างเพื่อให้แน่ใจว่าหน่วยความจำในโปรแกรม C ++ ไม่รั่วไหล ฉันจะทราบได้อย่างไรว่าใครควรเพิ่มหน่วยความจำที่ได้รับการจัดสรรแบบไดนามิก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.