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

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

13
วันของการส่ง const std :: string & เป็นพารามิเตอร์มากกว่าหรือไม่
ผมได้ยินพูดคุยล่าสุดโดย Sutter สมุนไพรที่ชี้ให้เห็นว่าเหตุผลที่จะผ่านstd::vectorและstd::stringโดยconst &ที่หายไปส่วนใหญ่ เขาแนะนำว่าการเขียนฟังก์ชั่นเช่นตอนนี้ดีกว่า std::string do_something ( std::string inval ) { std::string return_val; // ... do stuff ... return return_val; } ฉันเข้าใจว่าค่าreturn_valจะเป็น rvalue ณ จุดที่ฟังก์ชันส่งคืนและสามารถส่งคืนได้โดยใช้การย้ายความหมายซึ่งมีราคาถูกมาก อย่างไรก็ตามinvalยังคงมีขนาดใหญ่กว่าขนาดของการอ้างอิง (ซึ่งโดยปกติจะใช้เป็นตัวชี้) เนื่องจากstd::stringมีส่วนประกอบต่าง ๆ รวมถึงตัวชี้ไปยังฮีปและสมาชิกchar[]สำหรับการออปติไมซ์สตริงสั้น ๆ ดังนั้นสำหรับฉันแล้วการอ้างอิงโดยผ่านยังคงเป็นแนวคิดที่ดี มีใครอธิบายได้บ้างว่าทำไมสมุนไพรถึงพูดแบบนี้?
604 c++  c++11 

7
วิธีการเรียกฟังก์ชั่นระดับผู้ปกครองจากฟังก์ชั่นระดับที่ได้รับ?
ฉันจะเรียกใช้ฟังก์ชัน parent จากคลาสที่ได้รับโดยใช้ C ++ ได้อย่างไร ตัวอย่างเช่นฉันมีชั้นเรียนที่เรียกว่าparentและชั้นเรียนที่เรียกว่าchildมาจากผู้ปกครอง ภายในแต่ละชั้นมีprintฟังก์ชั่น ในคำจำกัดความของฟังก์ชั่นการพิมพ์ของเด็กฉันต้องการโทรไปยังฟังก์ชั่นการพิมพ์ของผู้ปกครอง ฉันจะทำสิ่งนี้อย่างไร
603 c++  oop  inheritance 

13
เมื่อใดที่ฉันจะใช้การประกาศล่วงหน้า
ฉันกำลังมองหาคำจำกัดความของเมื่อฉันได้รับอนุญาตให้ทำการประกาศไปข้างหน้าของคลาสในไฟล์ส่วนหัวของคลาสอื่น: ฉันอนุญาตให้ทำสำหรับคลาสพื้นฐานสำหรับคลาสที่จัดเป็นสมาชิกสำหรับคลาสที่ส่งไปยังฟังก์ชันสมาชิกโดยอ้างอิงหรือไม่?

17
นามสกุลไฟล์รหัส C ++? .cc vs .cpp [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดเมื่อเดือนที่แล้ว ฉันเห็นรหัส C ++ บันทึกเป็นทั้งไฟล์.ccและ .cppมีความแตกต่างระหว่างทั้งสองหรือไม่? คู่มือสไตล์ Googleดูเหมือนว่าจะแนะนำ.ccแต่ให้ไม่มีคำอธิบาย ฉันเกี่ยวข้องกับโปรแกรมบนระบบ Linux เป็นส่วนใหญ่
599 c++  filenames 


4
ทำไม iostream :: eof ภายในสภาพลูป (เช่น `while (! stream.eof ())`) ถือว่าผิด
ฉันเพิ่งพบความคิดเห็นในคำตอบนี้บอกว่าการใช้iostream::eofในสภาพลูปคือ "เกือบผิดแน่นอน" ฉันมักจะใช้สิ่งที่ชอบwhile(cin>>n)- ซึ่งฉันเดาว่าจะตรวจสอบ EOF โดยปริยาย เหตุใดการตรวจสอบว่ามีการใช้while (!cin.eof())ผิดอย่างชัดเจนหรือไม่ มันแตกต่างจากการใช้scanf("...",...)!=EOFใน C (ซึ่งฉันมักจะใช้ไม่มีปัญหา)?
595 c++  iostream  c++-faq 


9
วิธีการคำนวณปริมาณการใช้ CPU และหน่วยความจำจากภายในกระบวนการ?
ฉันเคยมีหน้าที่กำหนดพารามิเตอร์ประสิทธิภาพต่อไปนี้จากภายในแอปพลิเคชันที่ทำงานอยู่: หน่วยความจำเสมือนทั้งหมดที่มี หน่วยความจำเสมือนที่ใช้อยู่ในปัจจุบัน หน่วยความจำเสมือนที่กระบวนการของฉันใช้อยู่ในปัจจุบัน RAM ทั้งหมดที่มี RAM ที่ใช้ในปัจจุบัน RAM ที่กระบวนการของฉันใช้อยู่ในปัจจุบัน % CPU ที่ใช้อยู่ในปัจจุบัน % CPU ที่กระบวนการของฉันใช้อยู่ในปัจจุบัน รหัสต้องทำงานบน Windows และ Linux แม้ว่านี่จะเป็นงานมาตรฐาน แต่การค้นหาข้อมูลที่จำเป็นในคู่มือ (WIN32 API, เอกสาร GNU) และบนอินเทอร์เน็ตใช้เวลาหลายวันเพราะมีข้อมูลที่ไม่สมบูรณ์ / ไม่ถูกต้อง / ล้าสมัยในหัวข้อนี้ พบว่ามี เพื่อช่วยผู้อื่นให้พ้นจากปัญหาเดียวกันฉันคิดว่าเป็นความคิดที่ดีที่จะรวบรวมข้อมูลที่กระจัดกระจายทั้งหมดรวมถึงสิ่งที่ฉันพบจากการลองผิดลองถูกที่นี่ในที่เดียว
593 c++  c  memory  cpu 

26
ฉันจะรับรายการไฟล์ในไดเรกทอรีโดยใช้ C หรือ C ++ ได้อย่างไร
ฉันจะกำหนดรายการไฟล์ในไดเรกทอรีจากภายในรหัส C หรือ C ++ ได้อย่างไร ฉันไม่ได้รับอนุญาตให้ดำเนินการlsคำสั่งและแยกผลลัพธ์จากภายในโปรแกรมของฉัน
593 c++  c  file  directory 

28
วิธีสร้าง stacktrace โดยอัตโนมัติเมื่อโปรแกรมของฉันขัดข้อง
ฉันกำลังทำงานบน Linux ด้วยคอมไพเลอร์ GCC เมื่อโปรแกรม C ++ ของฉันล่มฉันต้องการให้สแต็คสร้างเทรซ โปรแกรมของฉันถูกเรียกใช้โดยผู้ใช้หลายคนและยังทำงานบน Linux, Windows และ Macintosh (ทุกรุ่นรวบรวมโดยใช้gcc) ฉันต้องการให้โปรแกรมของฉันสามารถสร้างการติดตามสแต็กเมื่อเกิดข้อผิดพลาดและในครั้งต่อไปที่ผู้ใช้เรียกใช้มันจะถามพวกเขาว่าการส่งสแต็กติดตามมาให้ฉันได้หรือไม่ดังนั้นฉันจึงสามารถติดตามปัญหาได้ ฉันสามารถจัดการการส่งข้อมูลให้ฉันได้ แต่ฉันไม่รู้วิธีสร้างสตริงการติดตาม ความคิดใด ๆ
590 c++  gcc  crash  stack-trace  assert 

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 

12
C ++:“ std :: endl” กับ“ \ n”
หนังสือ C ++ หลายเล่มมีรหัสตัวอย่างเช่นนี้ ... std::cout << "Test line" << std::endl; ... ดังนั้นฉันก็ทำเช่นนั้นเสมอ แต่ฉันเห็นรหัสจำนวนมากจากนักพัฒนาที่ทำงานเช่นนี้แทน: std::cout << "Test line\n"; มีเหตุผลทางเทคนิคหรือไม่ที่จะเลือกอย่างใดอย่างหนึ่งหรือเป็นเรื่องของรูปแบบการเข้ารหัสหรือไม่?

15
เมื่อใดฉันจึงควรเขียนคำหลัก 'อินไลน์' สำหรับฟังก์ชั่น / วิธีการ?
Наэтотвопросестьответына กองมากเกินнарусском : Когдаследуетиспользоватьอินไลน์дляфункции / метода? ฉันควรเขียนคำหลักเมื่อใด inlineสำหรับฟังก์ชั่น / วิธีการใน C ++ เมื่อใด หลังจากเห็นคำตอบบางคำถามที่เกี่ยวข้อง: เมื่อใดที่ฉันไม่ควรเขียนคำว่า 'อินไลน์' สำหรับฟังก์ชั่น / วิธีการใน C ++ เมื่อไรที่คอมไพเลอร์ไม่ทราบว่าจะสร้างฟังก์ชั่น / เมธอด 'inline' เมื่อใด มันมีความสำคัญอย่างไรหากแอปพลิเคชันนั้นมีหลายเธรดเมื่อมีการเขียน 'inline' สำหรับฟังก์ชั่น / วิธีการ?

8
ความแตกต่างระหว่างห้องสมุดแบบคงที่และที่ใช้ร่วมกัน?
อะไรคือความแตกต่างระหว่างห้องสมุดแบบคงที่และที่ใช้ร่วมกัน? ฉันใช้ Eclipse และมีโปรเจ็กต์หลายประเภทรวมถึง Static Libraries และ Shared Libraries? คนหนึ่งได้เปรียบกว่าอีกคนหนึ่งหรือเปล่า?

20
* .h หรือ * .hpp สำหรับนิยามคลาสของคุณ
ผมเคยใช้เสมอ*.hไฟล์สำหรับคำจำกัดความชั้นเรียนของฉัน *.hppแต่หลังจากที่ได้อ่านรหัสห้องสมุดเพิ่มบางอย่างผมตระหนักว่าพวกเขาใช้งานทั้งหมด ฉันมักจะไม่ชอบนามสกุลไฟล์นั้นฉันคิดว่าส่วนใหญ่เป็นเพราะฉันไม่ชิน อะไรคือข้อดีและข้อเสียของการใช้*.hppมากกว่า*.h?
554 c++  header 

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