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

คำถามเกี่ยวกับ C ++ ซึ่งเป็นภาษาการเขียนแบบสแตติกแบบหลายกระบวนทัศน์รวบรวมภาษาการเขียนโปรแกรมสำหรับวัตถุประสงค์ทั่วไป

3
เลือก C ++ หรือ Java สำหรับแอปพลิเคชันที่ต้องการ RAM จำนวนมากใช่ไหม [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังคิดถึงแอปพลิเคชันทางวิทยาศาสตร์ที่ส่วนใหญ่ใช้โปรเซสเซอร์และมีน้ำหนักมากในการใช้งานฮีป (อย่างน้อยหลายกิกะไบต์) ช่วงเวลาอื่นของปีที่ฉันจะไปกับ C ++ อย่างมีความสุข แต่ในกรณีนี้ฉันสงสัยว่าการกระจายตัวตามธรรมชาติของตัวจัดการหน่วยความจำ C ++ อาจเป็นปัญหาร้ายแรงเมื่อเทียบกับข้อดีของตัวสะสมขนาดกะทัดรัดของ Java ใครสามารถชี้ให้เห็นตัวอย่างที่แท้จริงเกี่ยวกับสิ่งนี้
11 java  c++  memory  big-data 

3
CRTP ใช้ไปมากน้อยแค่ไหน? และทำไมเป็น / ไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังคิดเกี่ยวกับรูปแบบเทมเพลตที่เกิดขึ้นซ้ำๆ ฉันพบว่ามันค่อนข้างมีประโยชน์และมันก็ปรับได้ดีสำหรับงานหลายอย่าง แต่ฉันต้องยอมรับฉันไม่เห็นรหัส CRTP ส่วนมาก เข้าใจยากไหม ฟังก์ชั่นเสมือนโดยรวมง่ายขึ้นหรือไม่ ไม่ควรใช้กับ 90% ของกรณีที่คำหลักเสมือนปรากฏขึ้น

4
มีกฎทั่วไปหรือไม่เมื่อคุณควรใช้ 'ทำให้สะอาด' แทนที่จะ 'ทำ'
ฉันกำลังเขียนโปรแกรมที่มีหลายไฟล์ในตอนนี้และเห็นได้ชัดว่าใช้งานเพียง 'ทำ' (เพราะคนเราคิดว่าจะต้องทำในสถานการณ์ส่วนใหญ่อย่างสังหรณ์ใจ) ด้วยเหตุผลบางอย่างทำให้โปรแกรมของฉันล้มเหลว ฉันเดาว่าฉันสามารถให้รายละเอียดเพิ่มเติมของปัญหา แต่สิ่งสำคัญคือมันทำงานเมื่อใช้ 'ทำความสะอาด' ดังนั้นฉันจึงสงสัยว่าถ้าใครรู้กฎทั่วไปของหัวแม่มือสำหรับการทำงาน 'ทำความสะอาด' แทนที่จะ 'ทำ'
11 c++  builds  make 

6
การเลือกประเภทของตัวแปรดัชนี
เราใช้ประเภทจำนวนเต็มแทนตัวแปรดัชนีส่วนใหญ่ แต่ในบางสถานการณ์เราถูกบังคับให้เลือก std::vector<int> vec; .... for(int i = 0; i < vec.size(); ++i) .... สิ่งนี้จะทำให้คอมไพเลอร์เพิ่มการเตือนว่าการใช้ตัวแปรที่ลงนาม / ไม่ได้ลงนามร่วมกัน ถ้าฉันสร้างตัวแปรดัชนีเป็นfor( size_t i = 0; i < vec.size(); i++ )(หรือunsigned int) มันจะสังคายนาปัญหา เมื่อเฉพาะเจาะจงมากขึ้นในการใช้ประเภท windows ส่วนใหญ่ Windows APIs จะเกี่ยวข้องกับ DWORD (ซึ่งพิมพ์ -ed เป็นยาวไม่ได้ลงนาม) ดังนั้นเมื่อฉันใช้การทำซ้ำที่คล้ายกันอีกครั้งจะทำให้คำเตือนเดียวกัน ตอนนี้ถ้าฉันเขียนมันใหม่เป็น DWORD dwCount; .... for(DWORD i = 0; i < …
11 c++ 

1
คำหลัก“ เพื่อน” ใช้ทำอะไร
คุณช่วยอธิบายให้ฉันฟังได้ไหมว่าเพราะเหตุใดfriendคำหลักจึงเหมาะสำหรับการให้สิทธิ์การเข้าถึงข้อมูลส่วนตัวของชั้นเรียน
11 c++  definition 

3
การเขียนโปรแกรมทั่วไปใช้บ่อยแค่ไหนในอุตสาหกรรม
ฉันกำลังเขียนโปรแกรมในสภาพแวดล้อมทางวิชาการในขณะนี้ดังนั้นฉันสามารถใช้สิ่งที่ฉันต้องการ ฉันใช้ห้องสมุดกราฟเพิ่มสำหรับบางสิ่งและฉันสงสัยว่าการลงทุนเพื่อทำความเข้าใจ GP ยิ่งลึกคุ้มค่าหรือไม่ ฉันอยากรู้อยากเห็น - การเขียนโปรแกรมทั่วไป (GP) มีการใช้งานมากในอุตสาหกรรมหรือไม่ ฉันเดาว่าโปรแกรมเมอร์ส่วนใหญ่คุ้นเคยกับ OOP หรือใช้ภาษาที่ไม่เน้นหรือสนับสนุน GP ดังนั้นนอกการเรียก STL โครงสร้างข้อมูล / ฟังก์ชั่นใน C ++ ความประทับใจของฉันคือ GP ไม่ได้ใช้ทั้งหมดบ่อยนัก ในทางปฏิบัติ แต่การอยู่นอกอุตสาหกรรมในขณะนี้เป็นเรื่องดีที่ได้ยินจากผู้ฝึกสอนในเรื่องนี้ (ขณะที่ฉันกำลังเขียนสิ่งนี้ฉันเห็นว่าการเขียนโปรแกรมทั่วไปไม่ใช่แท็กที่ถูกต้อง!)

7
การเขียนโปรแกรมที่มีโครงสร้างกับการเขียนโปรแกรม OO
ฉันกำลังนำเสนอที่แสดงความแตกต่างระหว่างการเขียนโปรแกรมเชิงโครงสร้างและเชิงวัตถุและฉันต้องการแสดงให้เห็นว่าทำไมผู้คนต้องการ OOP ด้วยตัวอย่างที่การใช้แนวคิด OOP จะทำให้การเข้ารหัสง่ายขึ้นมากเพื่อให้ผู้ชมรู้สึกว่าต้องการ OOP ความคิดใด ๆ ??

9
ศึกษาเกี่ยวกับการเพิ่มหรือลดความสามารถในการผลิตเอกสารรหัส
หลังจากค้นหามากฉันล้มเหลวในการตอบคำถามพื้นฐานที่เกี่ยวข้องกับการสันนิษฐานว่าเป็นที่รู้จักในโลกการพัฒนาซอฟต์แวร์: สิ่งที่เป็นที่รู้จัก: การบังคับใช้นโยบายที่เข้มงวดเกี่ยวกับเอกสารรหัสที่เพียงพอ (ไม่ว่าจะเป็นแท็ก Doxygen, Javadoc หรือเพียงแค่ความคิดเห็นมากมาย) จะเพิ่มส่วนหัวไปยังเวลาที่ใช้ในการพัฒนาโค้ด แต่: การมีเอกสารอย่างละเอียด (หรือแม้กระทั่ง API) จะนำมาซึ่งความสามารถในการเพิ่มผลผลิต (ข้อสันนิษฐานหนึ่งข้อ) ในนักพัฒนาใหม่และผู้ที่มีประสบการณ์ในช่วงที่พวกเขากำลังเพิ่มคุณสมบัติหรือแก้ไขข้อบกพร่องตามท้องถนน คำถาม: ต้องใช้เวลาในการพัฒนาเพิ่มเติมเพื่อรับประกันเอกสารดังกล่าวซึ่งชดเชยด้วยผลกำไรที่เพิ่มขึ้นจากการผลิตบนถนน (ในแง่ที่ประหยัดอย่างเคร่งครัด) หรือไม่? ฉันกำลังมองหากรณีศึกษาหรือคำตอบที่สามารถนำหลักฐานที่เป็นหลักฐานมาสนับสนุนข้อสรุปที่ได้รับ ขอบคุณล่วงหน้า!

10
Java หรือ C ++ สำหรับหลักสูตร CS ในมหาวิทยาลัย?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังตกหลุมรักการลงทะเบียนเรียนที่โรงเรียนเพื่อรับปริญญา CS โรงเรียนที่ฉันกำลังมองหานั้นมีทั้ง Java- และ C ++ สำหรับหลักสูตรการพัฒนาซอฟต์แวร์เบื้องต้น (การเขียนโปรแกรมเชิงวัตถุรูปแบบการออกแบบสิ่งต่าง ๆ ) เป็นทางเลือกของนักเรียนที่ติดตามติดตาม แต่มีเวลาเพียงหนึ่งติดตามเท่านั้น รู้ว่าคุณรู้อะไรตอนนี้ถ้าคุณมีทางเลือกคุณจะวางรากฐานหลักสูตร CS ของคุณใน Java หรือ C ++ หรือไม่ ปัจจุบันการอภิปรายของฉันในปัจจุบันมีลักษณะเช่นนี้: เพื่อนที่ดี (ที่มีปริญญาเอกใน AI) กำลังโน้มน้าวให้ Java เป็นตัวเลือกที่ดีกว่าโดยไม่คำนึงถึงสิ่งที่ฉันทำถ้าเพียงเพื่อเพิ่มโอกาสในการทำงานมากขึ้นในภายหลังแม้ว่าเขาจะลำเอียงเพราะงานของเขาทั้งหมดอยู่ใน Java (เขา รักมัน) ฉันอาศัยอยู่ในเขต Boston, MA, USA และฉันเห็นงาน Java และ C ในปริมาณที่เท่ากัน ในทางกลับกันแม้ว่าฉันจะยังไม่ได้ตัดสินในสิ่งที่ฉันต้องการจะทำอย่างไรกับระดับเมื่อฉันทำสิ่งที่ฉันชอบคือการพัฒนาสำหรับ Mac ซึ่งตอนนี้ฉันกำลังทำอยู่แม้ว่าจะมีความจุ จำกัด ด้วยเหตุนี้ฉันจึงได้รับ C …
11 java  c++  education 

2
วิธีการจัดการการอ้างอิงสำหรับโครงการ C / C ++ อย่างถูกต้อง?
ฉันมีโครงการที่ใช้ไลบรารี C / C ++ โอเพ่นซอร์ส 3-4 แบบ ฉันสร้างไลบรารีเหล่านี้สำหรับหลายแพลตฟอร์มและเช็คอินรวมไฟล์และ libs แบบคงที่สำหรับแพลตฟอร์มต่าง ๆ ในโครงการของฉัน อย่างไรก็ตามฉันต่อสู้กับปัญหาสองสามอย่าง โครงการทั้งหมดเหล่านี้เป็นการบริหารการพึ่งพา และฉันกำลังมองหาคำแนะนำวิธีปฏิบัติที่ดีที่สุด 1) ฉันจะรู้ได้อย่างไรว่าฉันใช้อะไรกันแน่ ฉันไม่มีทางที่จะไปรับ lib แบบคงที่ เป็นผลให้ฉันต้องติดตามอย่างใดอย่างหนึ่ง lib แบบคงที่ฉันใช้ (อาจ SHA ของการกระทำที่มันถูกสร้างขึ้น)? นี่เป็นสิ่งสำคัญอย่างยิ่งเมื่อฉันต้องคิดเมื่อต้องอัพเกรด libs เหล่านี้ 2) ฉันจะสร้างงานสร้างใหม่ได้อย่างไร ฉันอาจพยายามสร้างห้องสมุดเฉพาะสำหรับแพลตฟอร์มเฉพาะ ฉันใช้เวลาซักพักนึง ครั้งต่อไปที่ฉันจะต้องสร้างห้องสมุดเดียวกันอาจจะเป็นในครึ่งปี (เมื่อฉันจะต้องอัพเกรดด้วยเหตุผลใดก็ตามอย่างไรก็ตามในเวลานั้นฉันจะไม่จำอะไรและสภาพแวดล้อมที่มันถูกสร้างขึ้น จะหายไปนาน 3) ฉันควรแยกไลบรารี่เหล่านี้ให้มีซอร์สโค้ดหรือไม่ นี่เป็นข้อกังวลที่น้อยกว่า อย่างไรก็ตามมันยังคงเป็นปัญหา เป็นเรื่องดีที่จะตรวจสอบให้แน่ใจว่าบิลด์นั้นสามารถทำซ้ำได้ (และประเภทนั้นต้องการซอร์สโค้ด)

2
ทำไม ifstream.eof () ไม่ส่งคืน TRUE หลังจากอ่านบรรทัดสุดท้ายของไฟล์
เมื่อมือใหม่เริ่มอ่าน ifstreams สัญชาตญาณของเขา / เธอคือการอ่านไฟล์โดยใช้ลูปที่มักจะมีลักษณะดังนี้ while (!ifstream.eof() { ... } อย่างไรก็ตามเมื่อฉันใช้รหัสนี้ฉันสังเกตว่ามันไม่หยุดจนกว่าจะได้อ่านบรรทัดสุดท้ายของไฟล์สองครั้ง โปรแกรมเมอร์ C ++ โปรดทราบว่านี่ไม่ใช่วิธีการอ่านไฟล์ แต่พวกเขามักจะแนะนำว่าใครก็ตามที่ต้องการอ่านไฟล์ให้ใช้การวนซ้ำเช่นนี้แทน: while (ifstream >> someVar) { ... } ทำไมรหัสชิ้นแรกไม่สามารถทำงานได้อย่างถูกต้อง?
11 c++ 

1
globals แบบคงที่และเนมสเปซที่ไม่ระบุชื่อใน C ++
เหตุใด C ++ จึงสร้างความแตกต่างระหว่างสถิตแบบคงที่ (การเชื่อมโยงภายใน) และสัญลักษณ์ในเนมสเปซที่ไม่มีชื่อ (การเชื่อมโยงภายนอก แต่ไม่มีวิธีการอ้างถึงจากภายนอกอย่างไรก็ตาม) เหตุผลเหล่านี้ยังคงใช้ได้หรือมีเหตุผลใหม่หรือไม่? มีสถานที่ใดบ้างที่ยังคงแตกต่างกันไป แต่ต้องมีกฎเกณฑ์ที่สหภาพนิรนามทั่วโลก (หรือขอบเขตของเนมสเปซ)staticที่ไม่ระบุชื่อและต้องเป็นอะไร สำหรับคะแนนโบนัสหากไม่มีเหตุผลดีๆที่ทำให้พวกเขาแตกต่างกันมีการขอให้เทียบเท่าหรือไม่? เมื่อ C ++ แนะนำเนมสเปซ (C ++ 98) และเนมสเปซที่ไม่มีชื่อโดยเฉพาะรูปทรงแบบคงที่ถูกเลิกใช้แล้วล้าสมัยและด้อยกว่าสิ่งใหม่ในความกระตือรือร้นแม้ว่ามันจะถูกเปลี่ยนกลับด้วย C ++ 11 : การ คัดค้านคำสำคัญ ... ไม่มาก ก่อน C ++ 11 สัญลักษณ์ที่มีการเชื่อมโยงภายในไม่สามารถใช้เป็นอาร์กิวเมนต์ของเทมเพลต: ทำไม C ++ 03 จึงต้องการให้พารามิเตอร์เทมเพลตมีการเชื่อมโยงภายนอก

3
ใน C ++ ฉันควรใช้ขั้นสุดท้ายในการประกาศวิธีเสมือนเมื่อใด
ฉันรู้ว่าfinalคำหลักที่ใช้ในการป้องกันวิธีเสมือนจากการถูกแทนที่โดยชั้นเรียนที่ได้รับ อย่างไรก็ตามฉันไม่พบตัวอย่างที่มีประโยชน์เมื่อฉันควรใช้finalคำหลักด้วยvirtualวิธีการจริงๆ ยิ่งไปกว่านั้นมันรู้สึกว่าการใช้งานfinalด้วยวิธีเสมือนเป็นกลิ่นที่ไม่ดีเนื่องจากมันไม่อนุญาตให้โปรแกรมเมอร์ขยายชั้นเรียนในอนาคต คำถามของฉันคือต่อไป: มีกรณีใดที่มีประโยชน์เมื่อฉันควรใช้finalในvirtualการประกาศวิธี?
11 c++  final 

3
ค่า“ (int) & ค่า 0x1, (int) & ค่า 0x2, (int) ค่า & 0x4, (int) ค่า & 0x8” หมายถึงอะไร "
"value" มีค่าตั้งแต่ 0 ถึง 15 (ค่าที่เป็นไปได้) เมื่อใดที่จะเป็นไปตามเงื่อนไข 4 "ถ้า" ถ้าค่า (int) ของฉัน = 2 นี่หมายความว่า 0010 หรือไม่ if ((int)value & 0x1) { //statement here } if ((int)value & 0x2) { //statement here } if ((int)value & 0x4) { //statement here } if ((int)value & 0x8) { //statement here }

2
ใน C ++, SFINAE และ metaprogramming ตั้งใจหรือเป็นเพียงแค่ผลพลอยได้ของแม่แบบหรือไม่?
SFINAEและtemplatemetaprogramming สามารถทำสิ่งมหัศจรรย์ได้และห้องสมุดหลายแห่งก็ใช้พวกมันอย่างมาก ในอดีตทั้งสอง "แนวคิดเกี่ยวกับเวทมนต์" เหล่านี้ได้รับการแนะนำ / สนับสนุนใน C ++ อย่างจงใจ? หรือพวกเขาเพิ่งค้นพบในภายหลังว่าเป็นผลพลอยได้ที่มีประโยชน์ (ผลิตภัณฑ์ด้านข้าง) ของtemplateการเขียนโปรแกรมต้นฉบับ?

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