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

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

6
วิธีการจ้างนักพัฒนา C # ที่ดีถ้าฉันไม่รู้ C # [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นนักพัฒนา C ++ ฉันรู้ว่า Windows ทำงานในระดับปกติได้อย่างไร แต่ฉันไม่ใช่ผู้เชี่ยวชาญตัวใหญ่ใน C # และ. NET ตอนนี้ฉันต้องการนักพัฒนา C # ในทีมของฉัน (นักพัฒนาของฉันคือ C ++) ฉันจะจ้างนักพัฒนา C # ที่ดีได้อย่างไรหากฉันไม่รู้จัก C # ในระดับดี วิธีการถามคำถามวิธีการทดสอบว่าคำตอบดีหรือผิดพลาด?
15 c#  c++  hiring 

6
จะอธิบายได้อย่างไรว่าการเขียนรหัส C ++ ข้ามแพลตฟอร์มและผลิตภัณฑ์การจัดส่งสำหรับ OS ทุกระบบนั้นไม่ใช่เรื่องง่าย?
บริษัท ของเราจัดส่งผลิตภัณฑ์เดสก์ท็อปที่หลากหลายสำหรับ Windows และผู้ใช้ Linux จำนวนมากบ่นในฟอรัมที่เราควรจะเขียนเวอร์ชันผลิตภัณฑ์ของเราสำหรับ Linux เมื่อหลายปีก่อนและสาเหตุที่เราไม่ทำเช่นนั้นคือ เราเป็น บริษัท โลภ ผู้เชี่ยวชาญด้านเทคนิคของเราทุกคนมีคุณสมบัติต่ำกว่ามาตรฐาน ผลิตภัณฑ์โดยเฉลี่ยของเรานั้นคล้ายกับรหัส C ++ 3 ล้านบรรทัด การวิเคราะห์ของฉันและเพื่อนร่วมงานของฉันมีดังต่อไปนี้: การเขียนโค้ด C ++ ข้ามแพลตฟอร์มนั้นไม่ใช่เรื่องง่าย การเตรียมแพ็คเกจการกระจายจำนวนมากและการดูแลรักษาให้พร้อมสำหรับ Linux เวอร์ชันที่แพร่หลายทั้งหมดนั้นต้องใช้เวลา การคาดการณ์ของเราคือตลาดลีนุกซ์เป็นอะไรที่ 5-15% ของผู้ใช้ทั้งหมดและผู้ใช้เหล่านั้นจะไม่ต้องการจ่ายเงินสำหรับความพยายามของเรา เมื่อสิ่งนี้เกิดขึ้นการตอบสนองก็เป็นอีกครั้งที่เราโลภไร้เดียงสาที่โง่เขลาและเมื่อทุกอย่างถูกต้องทั้งหมดนี้เป็นเรื่องง่ายและไม่เจ็บปวด การประเมินของเรามีเหตุผลว่าการเขียนโค้ดข้ามแพลตฟอร์มและการบำรุงรักษาแพคเกจการกระจายจำนวนมากใช้ความพยายามมากมาย? เราจะหาบทวิเคราะห์ที่ง่ายและมีรายละเอียดได้อย่างไรจากเรื่องราวชีวิตจริงที่แสดงให้เห็นเหนือเงาแห่งความสงสัยซึ่งต้องใช้ความพยายามเพียงใด?

7
การเขียนโปรแกรมเกม: C # หรือ C ++? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันตัดสินใจว่าสิ่งที่ฉันต้องการจริงๆคือทำโปรแกรมเกม ดังนั้นคำถามคือเมื่ออายุ 18 ปีที่ต้องการเรียนรู้การเขียนโปรแกรมด้วยตัวเองภาษาการเขียนโปรแกรมที่เหมาะสมที่สุดระหว่าง C # และ C ++ คืออะไร (ฉันควรระบุว่าฉันไม่สนใจ Unix เพราะฉันเชื่อว่า windows จะยังคงเป็น OS ที่ใช้มากที่สุด) ฉันรู้พื้นฐานของ C ++ แต่ไม่มีเกี่ยวกับ C # ฉันรู้ว่า C ++ มีคู่มือการสอนเพิ่มเติม, ที่กำลังและสิ่งต่างๆเช่นนั้น, ในขณะที่ C # ไม่ได้, แต่มันง่ายกว่าที่จะเรียนรู้และใช้สำหรับคนคนเดียวในการพัฒนาโปรแกรม, แต่ฉันอ่านแม้ว่าโปรแกรมนั้นจะงงงวย มันง่ายที่จะได้รับแหล่งที่มาของมัน ฉันต้องการที่จะเน้นเรื่องพื้นฐานเป็นอย่างมากก่อนอื่นฉันต้องบอกว่าฉันชอบ C ++ …

10
สิ่งที่ดีที่สุดสำหรับการเข้ารหัสในสภาพแวดล้อมการรวบรวมช้า
ฉันเคยเขียนโค้ดใน C # ในรูปแบบ TDD - เขียน / หรือเปลี่ยนรหัสเล็ก ๆ ของคอมไพล์อีกครั้งใน 10 วินาทีของการแก้ปัญหาทั้งหมดเรียกใช้การทดสอบอีกครั้งและอีกครั้ง ง่าย... วิธีการพัฒนานั้นใช้งานได้ดีมากสำหรับฉันสองสามปีจนกระทั่งเมื่อปีที่แล้วเมื่อฉันต้องกลับไปที่การเข้ารหัส C ++ และรู้สึกว่าผลผลิตของฉันลดลงอย่างมากตั้งแต่นั้นมา ภาษา C ++ ไม่ใช่ปัญหา - ฉันมีประสบการณ์การพัฒนา C ++ ค่อนข้างมาก แต่ในอดีต ผลผลิตของฉันยังคงโอเคสำหรับโครงการขนาดเล็ก แต่มันแย่ลงเมื่อการเพิ่มขนาดของโครงการและเมื่อรวมเวลาในการรวบรวม 10+ นาทีมันแย่มาก และถ้าฉันพบข้อผิดพลาดฉันต้องเริ่มต้นการรวบรวมอีกครั้ง ฯลฯ นั่นเป็นเพียงการทำลายอย่างหมดจด ดังนั้นฉันจึงสรุปว่าในชิ้นเล็ก ๆ (เหมือนก่อน) ไม่เป็นที่ยอมรับ - คำแนะนำใด ๆ ที่ฉันจะทำให้ตัวเองกลายเป็นนิสัยเก่าของการเข้ารหัสเป็นเวลาหนึ่งชั่วโมงหรือมากกว่านั้นเมื่อตรวจสอบโค้ดด้วยตนเอง (โดยไม่ต้องพึ่งพาคอมไพเลอร์ C # ที่รวดเร็ว) และทำการทดสอบหน่วย / การเรียกใช้ซ้ำอีกครั้งหนึ่งครั้งในสองสามชั่วโมง …

3
มันเป็นการดีที่จะกำหนดตัวแปรภายในวงหรือไม่? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ผู้สอนของฉันเคยบอกฉันว่าฉันไม่ควรกำหนดตัวแปรภายในลูปแต่ฉันก็ยังคงไม่เข้าใจว่าทำไม อะไรคือข้อเสียของสิ่งนั้น? มีร่างกายใดสามารถอธิบายสิ่งนั้นให้ฉันได้บ้าง

6
มลพิษที่ "ใช้ namespace" คืออะไร?
ฉันกำลังดูคู่มือการเขียนโค้ดของ Google [ที่นี่]และพวกเขาไม่แนะนำให้ใช้using namespaceหรือnamespace::function- ถ้าฉันไม่ได้ตีความผิด สิ่งนี้ใช้ได้กับstdเช่นกันหรือไม่? cout<<ไม่ทำงานหากไม่มีมัน หนังสือเล่มนี้แนะนำเหมือนกัน ดังนั้นฉันจะไปเกี่ยวกับการใช้cout<<โดยไม่ต้องusing namespace std;หรือstd::cout<<อย่างไร วิธีที่แนะนำคืออะไร? std::cout<<? หนังสือเรียน c ++ ส่วนใหญ่สอนผู้เริ่มต้นด้วยusing namespace std;พวกเขาเผยแพร่วิธีการเข้ารหัสที่ไม่ดีหรือไม่?
15 c++  coding-style 

8
ทำไม C ++ ถึงเขียนคอมไพเลอร์?
ฉันสงสัยว่าทำไม C ++ จึงเป็นตัวเลือกที่ดีในการเขียนคอมไพเลอร์ แน่นอนว่า C ก็ดีสำหรับจุดประสงค์นี้ด้วยเช่นกันเพราะคอมไพเลอร์ส่วนใหญ่เขียนใน C หรือ C ++ แต่ฉันสนใจ C ++ มากกว่าในเวลานี้ มีเหตุผลที่ดีไหม? ฉันกำลังหาสิ่งนั้นในอินเทอร์เน็ต แต่ฉันไม่สามารถหาเหตุผลที่ดีได้
14 c++  compiler 

7
เป็นความคิดที่ไม่ดีหรือไม่ที่ทำให้วิธีการเรียนที่ผ่านการเรียนตัวแปรหรือไม่
นี่คือสิ่งที่ฉันหมายถึง: class MyClass { int arr1[100]; int arr2[100]; int len = 100; void add(int* x1, int* x2, int size) { for (int i = 0; i < size; i++) { x1[i] += x2[i]; } } }; int main() { MyClass myInstance; // Fill the arrays... myInstance.add(myInstance.arr1, myInstance.arr2, myInstance.len); } addสามารถเข้าถึงตัวแปรทั้งหมดที่ต้องการได้แล้วเนื่องจากเป็นวิธีการเรียนดังนั้นนี่เป็นความคิดที่ไม่ดีหรือไม่? …

3
ฉันควรเพิ่มแหล่งที่มาของห้องสมุดแทนที่จะเชื่อมโยงไปยังพวกเขาหรือไม่
ฉันค่อนข้างใหม่กับ C ++ ดังนั้นฉันไม่แน่ใจว่าฉันควรจัดการกับการอ้างอิงขนาดเล็กได้ดีที่สุดอย่างไร (เช่นภาษาสคริปต์หรือ JSON / YAML / XML Parser) ฉันควรสร้างโครงการแยกต่างหากและเชื่อมโยงเป็นห้องสมุดแบบคงที่หรือมีข้อเสียเพียงวางไฟล์. h / .cpp ลงในโครงการหลักของฉัน หลังดูง่ายกว่ามากเพราะฉันใช้เวลาหลายชั่วโมงในการจัดการกับไลบรารีที่เข้ากันไม่ได้ (การตั้งค่าคอมไพเลอร์ที่แตกต่างกันเมื่อสร้างห้องสมุด) แต่ฉันไม่ต้องการเริ่มต้นเรียนรู้ C ++ ในทางที่ผิด หากการเก็บไว้เป็นไลบรารี่แยกกันฉันจะเก็บแฟล็กการรวบรวมให้ตรงกันได้อย่างไรเพื่อให้ไฟล์. lib / .a เชื่อมโยงกับแอปพลิเคชันของฉันสำเร็จ (ตอนนี้ฉันทำงานกับ MSVC 2015 แต่เป้าหมายคือการคอมไพล์บน Mac OS X และ iOS โดยใช้ XCode / clang ดังนั้นฉันต้องจัดการกับไลบรารีที่แตกต่างกันอย่างน้อย 3 ประเภท (Win x86, Mac x64, ARM) )
14 c++  linking 

2
เหตุใดการใช้ไลบรารี C ++ จึงมีความซับซ้อน
ก่อนอื่นฉันต้องการทราบว่าฉันรัก C ++ และฉันเป็นหนึ่งในคนเหล่านั้นที่คิดว่าการเขียนโค้ดใน C ++ ง่ายกว่า Java ยกเว้นสิ่งเล็ก ๆ น้อย ๆ อย่างหนึ่ง: ห้องสมุด ใน Java คุณสามารถเพิ่ม jar ลงใน build path และเสร็จแล้ว ใน C ++ คุณจะต้องตั้งค่าหลายพา ธ สำหรับไฟล์ส่วนหัวและไลบรารีเอง ในบางกรณีคุณต้องใช้แฟล็กบิลด์พิเศษ ฉันใช้ Visual Studio, Code Blocks เป็นหลักและไม่มี IDE เลย ตัวเลือกทั้ง 3 ไม่แตกต่างกันมากเมื่อพูดถึงการใช้ไลบรารีภายนอก ฉันสงสัยว่าทำไมไม่มีทางเลือกที่ง่ายกว่านี้? เช่นเดียวกับการมีไฟล์. zip แบบพิเศษที่มีทุกสิ่งที่คุณต้องการในที่เดียวเพื่อให้ IDE สามารถทำงานทั้งหมดให้คุณได้ มีอุปสรรคทางเทคนิคสำหรับสิ่งนี้หรือไม่?
14 java  c++  libraries 

7
C # ให้“ เชือกน้อยกว่าให้คุณแขวน” กว่า C ++ หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา โจ Spolsky ลักษณะ C ++ เป็น "เชือกพอที่จะแขวนตัวเอง" อันที่จริงเขาสรุป "Effective C ++" โดย Scott Meyers: มันเป็นหนังสือที่บอกว่าโดยทั่วไปแล้ว C ++ นั้นมีเชือกพอที่จะแขวนตัวคุณเองและจากนั้นอีกสองสามไมล์ของเชือกแล้วก็มียาฆ่าตัวตายสองตัวที่ปลอมตัวเป็น M & Ms ... ฉันไม่มีสำเนาของหนังสือเล่มนี้ แต่มีข้อบ่งชี้ว่าหนังสือส่วนใหญ่เกี่ยวข้องกับข้อผิดพลาดในการจัดการหน่วยความจำซึ่งดูเหมือนว่าจะมีการแสดงผลที่สงสัยใน C # เนื่องจากรันไทม์จัดการปัญหาเหล่านั้นให้คุณ นี่คือคำถามของฉัน: C # หลีกเลี่ยงข้อผิดพลาดที่หลีกเลี่ยงใน C ++ โดยการโปรแกรมอย่างระมัดระวังหรือไม่ ถ้าเป็นเช่นนั้นในระดับใดและพวกเขาหลีกเลี่ยง? มีข้อผิดพลาดใหม่ ๆ ใน C # ที่โปรแกรมเมอร์ C …

5
พฤติกรรมที่ไม่ได้กำหนดใน Java
ฉันอ่านคำถามนี้เกี่ยวกับ SOที่กล่าวถึงพฤติกรรมที่ไม่ได้กำหนดทั่วไปใน C ++ และฉันสงสัยว่า: Java มีพฤติกรรมที่ไม่ได้กำหนดหรือไม่ หากเป็นเช่นนั้นแล้วสาเหตุทั่วไปของพฤติกรรมที่ไม่ได้กำหนดใน Java คืออะไร ถ้าไม่เช่นนั้นคุณสมบัติใดของ Java ที่ทำให้ปราศจากพฤติกรรมดังกล่าวและเพราะเหตุใด C และ C ++ รุ่นล่าสุดจึงไม่ถูกนำไปใช้กับคุณสมบัติเหล่านี้

3
ควรใช้ typedef เมื่อใด
ฉันสับสนเล็กน้อยเกี่ยวกับว่าและเมื่อไรฉันควรใช้ typedef ใน C ++ ฉันรู้สึกว่าเป็นการสร้างสมดุลระหว่างการอ่านและความชัดเจน นี่คือตัวอย่างโค้ดโดยไม่มีการพิมพ์ใด ๆ : int sum(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last) { static std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int> lookup_table; std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int>::iterator lookup_it = lookup_table.find(lookup_key); if (lookup_it != lookup_table.end()) return lookup_it->second; ... } IMO ที่น่าเกลียดทีเดียว ดังนั้นฉันจะเพิ่ม typedefs ภายในฟังก์ชันเพื่อให้ดูดีขึ้น: int sum(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last) { typedef std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator> Lookup_key; typedef …
14 c++  coding-style 

7
ไกลแค่ไหนที่จะไปกับการพิมพ์ประเภทดั้งเดิมเช่น int
ฉันได้เห็นรหัส C ++ เช่นดังต่อไปนี้กับหลายtypedefๆ อะไรคือประโยชน์ของการใช้หลาย ๆtypedefอย่างเช่นนี้เมื่อเทียบกับการใช้ภาษาซีพลัสพลัส มีวิธีอื่นที่อาจบรรลุผลประโยชน์เหล่านั้นด้วยหรือไม่ ในที่สุดข้อมูลทั้งหมดจะถูกเก็บไว้ในหน่วยความจำหรือส่งผ่านสายเป็นบิตและไบต์จริงหรือไม่ types.h: typedef int16_t Version; typedef int32_t PacketLength; typedef int32_t Identity; typedef int32_t CabinetNumber; typedef int64_t Time64; typedef int64_t RFID; typedef int64_t NetworkAddress; typedef int64_t PathfinderAddress; typedef int16_t PathfinderPan; typedef int16_t PathfinderChannel; typedef int64_t HandsetSerialNumber; typedef int16_t PinNumber; typedef int16_t LoggingInterval; typedef int16_t …

6
สถานการณ์ในโลกแห่งความเป็นจริงสำหรับวิธีการป้องกัน
วันนี้ฉันสังเกตเห็นว่าโดยทั่วไปฉันไม่เคยใช้protectedวิธีการในรหัส C ++ เพราะฉันไม่ค่อยรู้สึกว่าจำเป็นต้องเรียกวิธีการที่ไม่ใช่แบบสาธารณะของผู้ปกครอง ฉันใช้การป้องกันใน Java ในรูปแบบวิธีการแม่แบบ แต่เนื่องจากคุณสามารถแทนที่วิธีส่วนตัวใน C ++ ฉันไม่จำเป็นต้องprotectedมี ดังนั้นสถานการณ์จริงที่ฉันต้องการใช้protectedวิธีการในรหัส C ++ คืออะไร (โปรดทราบว่าฉันไม่ชอบการนำมรดกไปใช้โดยทั่วไปซึ่งอาจอธิบายได้มาก ... )

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