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

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

4
ทำไม #include <iostream.h> ไม่ดี
ฉันกำลังอ่านหัวข้ออื่นที่ชายคนหนึ่งถามเกี่ยวกับหนังสือ C ++ สำหรับผู้เริ่มต้นและหนึ่งในโปรแกรมเมอร์ที่ตอบรับเขียนสิ่งนี้: คำเตือนบางอย่าง: หลีกเลี่ยงหนังสือทุกเล่มที่มีคำว่า "สวัสดีโลก" ที่ระบุ #include &lt;iostream.h&gt; ฉันเปิดหนังสือ C ++ ของฉันและได้รวมส่วนหัว iostream อย่างที่แสดงไว้ด้านบน เหตุใดจึงไม่ดี คำแนะนำอื่น ๆ ที่ฉันควรทราบเมื่อเรียนรู้ C ++ คืออะไร พื้นหลัง: ฉันมีความเชี่ยวชาญใน C และฉันจะเริ่มเรียนรู้ C ++ ภาคการศึกษาถัดไปนี้

2
ควรจัดรหัสทดสอบหน่วย C ++ เพื่อประสิทธิภาพการทดสอบหน่วยสูงสุดอย่างไร
คำถามนี้ไม่เกี่ยวกับกรอบการทดสอบหน่วย คำถามนี้ไม่เกี่ยวกับการเขียนการทดสอบหน่วย คำถามนี้เกี่ยวกับสถานที่ที่จะวางโค้ด UT และวิธี / เวลา / สถานที่ในการรวบรวมและเรียกใช้ ในการทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก Michael Feathers ยืนยันว่า ทดสอบหน่วยที่ดี ... ทำงานเร็ว และนั่น การทดสอบหน่วยที่ใช้เวลา 1 / 10th ของวินาทีในการทำงานคือการทดสอบหน่วยช้า ฉันคิดว่าคำจำกัดความเหล่านี้สมเหตุสมผล ฉันยังคิดว่าพวกเขาบอกเป็นนัยว่าคุณต้องเก็บชุดการทดสอบหน่วยและชุดการทดสอบรหัสเหล่านั้นที่ใช้เวลานานกว่าแยกจากกัน แต่ฉันคิดว่านั่นคือราคาที่คุณจ่ายสำหรับการโทรหาการทดสอบหน่วยเท่านั้น . เห็นได้ชัดว่าปัญหาใน C ++ คือการ "เรียกใช้" การทดสอบหน่วยของคุณคุณต้อง: แก้ไขรหัสของคุณ (การผลิตหรือการทดสอบหน่วยขึ้นอยู่กับ "รอบ" ที่คุณอยู่) รวบรวม ลิงค์ เริ่มการทดสอบหน่วยปฏิบัติการ ( s ) แก้ไข(หลังจากลงคะแนนเสียงแปลก ๆ ) : ก่อนลงรายละเอียดฉันจะลองสรุปประเด็นที่นี่: รหัสการทดสอบหน่วย C ++ …

5
ฉันควรใส่ฟังก์ชั่นที่ไม่เกี่ยวข้องกับคลาสได้ที่ไหน
ฉันกำลังทำงานในโครงการ C ++ ที่ฉันมีฟังก์ชั่นทางคณิตศาสตร์มากมายซึ่งตอนแรกฉันเขียนเพื่อใช้เป็นส่วนหนึ่งของชั้นเรียน ถึงแม้ว่าฉันจะเขียนโค้ดเพิ่มเติม แต่ฉันก็ตระหนักว่าฉันต้องการฟังก์ชันคณิตศาสตร์เหล่านี้ทุกที่ สถานที่ที่ดีที่สุดที่จะนำพวกเขาอยู่ที่ไหน สมมติว่าฉันมีสิ่งนี้: class A{ public: int math_function1(int); ... } และเมื่อฉันเขียนชั้นเรียนอื่นฉันไม่สามารถ (หรืออย่างน้อยฉันไม่รู้วิธี) ที่ใช้math_function1ในชั้นเรียนอื่นนั้น นอกจากนี้ฉันได้ตระหนักถึงฟังก์ชั่นบางอย่างที่ไม่เกี่ยวข้องกับคลาส A พวกเขาดูเหมือนจะเป็นจุดเริ่มต้น แต่ตอนนี้ฉันสามารถเห็นได้ว่าพวกเขาเป็นเพียงฟังก์ชันทางคณิตศาสตร์ การปฏิบัติที่ดีในสถานการณ์นี้คืออะไร? ตอนนี้ฉันได้คัดลอกพวกเขาไปสู่คลาสใหม่ซึ่งฉันแน่ใจว่าเป็นการปฏิบัติที่แย่ที่สุด
47 c++  functions  class 

11
ฉันควรเลือก C # บน Java และ C ++ ด้วยเหตุผลใดบ้าง [ปิด]
C # ดูเหมือนว่าจะเป็นที่นิยมในวันนี้ ฉันได้ยินมาว่าวากยสัมพันธ์มันเกือบจะเหมือนกับจาวา Java และ C ++ มีอยู่เป็นเวลานาน ฉันควรเลือก C # บน Java และ C ++ ด้วยเหตุผลใดบ้าง

13
เหตุใด C ++ จึงยังคงต้องการสร้างแอพ GUI หนัก ๆ เหนือภาษาไดนามิกล่าสุด [ปิด]
ฉันเห็นว่าแอพส่วนใหญ่ที่รวมเนื้อหา GUI หนัก ๆ มักจะพัฒนาใน C ++ เกม / เบราว์เซอร์ส่วนใหญ่ใช้รหัสใน C ++ เราไม่สามารถพัฒนาแอพ GUI ที่ดีขึ้นด้วยภาษาแบบไดนามิกล่าสุดได้หรือไม่ ฉันรู้ว่าจาวาจะไม่เป็นตัวเลือกที่ดี แต่สิ่งที่เกี่ยวกับภาษาเช่นหลามซึ่งถูกสร้างขึ้นบน C? ภาษาล่าสุดไม่ควรจะดีไปกว่าบรรพบุรุษของพวกเขา? ทำไมเรายังต้องเลือกภาษา C ++ ที่มีอายุมากกว่าภาษาล่าสุด? และฉันอยากจะรู้ว่ามันคืออะไรที่รับผิดชอบใน C ++ สำหรับความเร็วในการประมวลผล GUI ที่ดีขึ้น? ในทางตรงกันข้ามภาษาล่าสุดอื่น ๆ ขาดอะไร?

13
จะหาที่ปรึกษาการเขียนโปรแกรมได้อย่างไร [ปิด]
ฉันตัดสินใจเรียนรู้การเขียนโปรแกรม ฉันอ่าน SO มาหลายวันแล้วและฉันคิดว่าฉันจะเริ่มต้นด้วย C ++ เมื่อฉันอ่านบทความ ฉันตระหนักถึงลูป, อาร์เรย์, ตรรกะของโปรแกรมและวัตถุเล็ก ๆ น้อย ๆ และฉันต้องการใครสักคนที่จะมองฉันและช่วยฉันด้วยคำถามเล็ก ๆ ที่ฉันได้รับเมื่อทำโครงการแรกของฉัน ดังนั้นนี่คือคำถาม - ฉันจะหาผู้ชายแบบนั้นได้ที่ไหน ฉันไม่มีเพื่อนที่ตั้งโปรแกรมและทั้งหมด แก้ไข: 2 ปีต่อมาฉันยังคงมองหาที่ปรึกษา ฉันไม่ได้รหัสอย่างแข็งขันเพิ่งเริ่ม 3 เดือนอีกครั้ง ฉันทำงานกับการเขียนโปรแกรม Objective-C และ iOS และการเขียนโปรแกรมเกมด้วย Cocos2d หากคุณต้องการที่จะเป็นที่ปรึกษาของฉันให้ฉันหรือแสดงความคิดเห็น
46 learning  c++  teaching 

16
ภาษาในประวัติย่อ: ควรใส่“ C / C ++” หรือ“ C, C ++” หรือไม่ [ปิด]
ฉันกำลังจะสำเร็จการศึกษาในสองสามสัปดาห์และประวัติย่อของฉัน (ตามที่คาดไว้) จะแสดงรายการภาษาที่ฉันเคยมีประสบการณ์ ก่อนหน้านี้ผมได้ใส่"C / C ++"แต่กลับมาแล้วผมไม่ได้มีที่ประสบการณ์มากกับทั้งสองภาษาที่ผมทำตอนนี้ ตอนนี้ฉันได้เรียนรู้อย่างเป็นทางการทั้งสองภาษามันก็กลายเป็นชัดเจนสำหรับฉัน (และใครก็ตามที่รู้ภาษาเหล่านี้จริง ๆ ) ว่าพวกเขาเหมือนกันและแตกต่างกันอย่างสมบูรณ์ในเวลาเดียวกัน แน่นอนว่ารหัส C ส่วนใหญ่เป็นรหัส C ++ ที่คอมไพล์ได้ แต่ไวยากรณ์และการรวมฟังก์ชั่นของไลบรารีนั้นค่อนข้างมากเมื่อความคล้ายคลึงกันนี้สิ้นสุดลง ในปัญหาที่ไม่น่ารำคาญส่วนใหญ่โอกาสที่โซลูชัน C ++ ที่พึงประสงค์จะแตกต่างจากโซลูชัน C ที่พึงประสงค์ คำถามของฉัน: นายหน้าจะรับทราบหรือไม่สนใจว่าคุณใส่"C / C ++"ตรงข้ามกับ"C, C ++"หรือไม่? พวกเขาจะสมมติว่าขาดความรู้เกี่ยวกับผลงานของทั้งสองหรือไม่เนื่องจากการรวมรูปแบบแรกหรืออาจเห็นการรวมรูปแบบที่สองว่าเป็น "งาน Beefer" ที่มีศักยภาพ (แสดงเป็น 2 ภาษาแทน "หนึ่ง") ? นอกจากนี้สำหรับงานที่คุณสมัครงานที่สนใจเป็นพิเศษในสองภาษานี้กระบวนการสัมภาษณ์ได้รวมคำถามเกี่ยวกับความแตกต่างระหว่างการเขียนโปรแกรม C และการเขียนโปรแกรม C ++ (ดังนั้นเกี่ยวกับเทคนิคการเขียนโปรแกรมจริงไม่ใช่เฉพาะกระบวนทัศน์พิเศษในภายหลัง )?
46 c++  resume  c 

9
เราจะหลีกเลี่ยงการพัฒนาที่ขับเคลื่อนด้วย CI ได้อย่างไร?
ฉันกำลังทำงานในโครงการโอเพนซอร์ซที่มุ่งเน้นการวิจัยขนาดใหญ่มากโดยมีผู้สนับสนุนรายอื่นเป็นจำนวนมาก เนื่องจากโครงการนี้ค่อนข้างใหญ่สมาคม (ประกอบด้วยพนักงานเต็มเวลาสองคนและสมาชิกไม่กี่คน) อยู่ในความดูแลของโครงการการรวมกลุ่มอย่างต่อเนื่อง (CI) ฯลฯ พวกเขาไม่มีเวลาสำหรับการรวมกลุ่มจากภายนอก ผลงานแม้ว่า โครงการประกอบด้วยโครงร่าง "แกนกลาง" ซึ่งมีรหัสครึ่งหนึ่งของรหัสครึ่งหนึ่งกลุ่มของ "ปลั๊กอิน" ซึ่งได้รับการบำรุงรักษาโดยสมาคมและปลั๊กอินภายนอกหลายแห่งซึ่งส่วนใหญ่เราไม่ได้ทำ ไม่รู้ตัวด้วยซ้ำ ปัจจุบัน CI ของเราสร้างหลักและปลั๊กอินบำรุงรักษา หนึ่งในปัญหาใหญ่ที่เราเผชิญคือผู้ให้ข้อมูลส่วนใหญ่ (และโดยเฉพาะอย่างยิ่งในบางครั้ง) ไม่สร้าง 90% ของปลั๊กอินที่บำรุงรักษาดังนั้นเมื่อพวกเขาเสนอการเปลี่ยนแปลงโครงสร้างในแกนกลาง (ซึ่งสิ่งเหล่านี้เกิดขึ้นเป็นประจำ) พวกเขาตรวจสอบว่ารหัสรวบรวมในเครื่องของพวกเขาก่อนที่จะทำการร้องขอการดึงบน GitHub รหัสทำงานได้พวกเขามีความสุขและจากนั้น CI ก็เสร็จสิ้นการสร้างและปัญหาเริ่มต้น: การรวบรวมล้มเหลวในปลั๊กอินที่ดูแลรักษาโดยกลุ่มซึ่งผู้มีส่วนร่วมไม่ได้สร้างบนเครื่องของเขา / เธอ ปลั๊กอินนั้นอาจมีการพึ่งพาไลบรารีของบุคคลที่สามเช่นCUDAเป็นต้นและผู้ใช้ไม่ต้องการไม่ทราบวิธีการหรือไม่สามารถทำได้ด้วยเหตุผลด้านฮาร์ดแวร์รวบรวมปลั๊กอินที่ใช้งานไม่ได้ ดังนั้น - ทั้ง PR ยังคงโฆษณาอยู่ในบริเวณขอบของPRs ที่ไม่เคยถูกผสาน- หรือผู้มีส่วนร่วม greps ตัวแปรที่ถูกเปลี่ยนชื่อในแหล่งที่มาของปลั๊กอินที่เสียหาย, เปลี่ยนรหัส, กดรหัสบนสาขาของเขา / เธอรอ CI ที่จะทำการรวบรวมให้เสร็จสิ้นมักจะได้รับข้อผิดพลาดมากขึ้นและทำซ้ำกระบวนการจนกว่า CI จะมีความสุข - …

9
ทำไมไม่แนะนำพอยน์เตอร์เมื่อเข้ารหัสด้วย C ++
ฉันอ่านจากบางที่ว่าเมื่อใช้ C ++ ขอแนะนำไม่ให้ใช้พอยน์เตอร์ ทำไมพอยน์เตอร์ถึงเป็นความคิดที่ไม่ดีเมื่อคุณใช้ C ++ สำหรับโปรแกรมเมอร์ C ที่คุ้นเคยกับการใช้พอยน์เตอร์ทางเลือกและแนวทางใน C ++ ที่ดีกว่าคืออะไร
45 c++  c  pointers 

7
ฉันจะป้องกันไม่ให้ส่วนหัวนรกได้อย่างไร
เรากำลังเริ่มโครงการใหม่ตั้งแต่เริ่มต้น ประมาณแปดนักพัฒนาระบบย่อยโหลหรือมากกว่านั้นแต่ละคนมีไฟล์ต้นฉบับสี่หรือห้าไฟล์ เราจะทำอย่างไรเพื่อป้องกัน“ หัวนรก”, AKA“ หัวสปาเก็ตตี้”? หนึ่งส่วนหัวต่อไฟล์ต้นฉบับ? บวกหนึ่งต่อระบบย่อย? แยก typdefs, stucts &amp; enums จากฟังก์ชั่นต้นแบบหรือไม่? แยกระบบย่อยภายในออกจากสิ่งของภายนอกของระบบย่อยหรือไม่? ยืนยันว่าทุกไฟล์เดียวไม่ว่าจะเป็นส่วนหัวหรือแหล่งที่มาจะต้องรวบรวมแบบสแตนด์อโลน ฉันไม่ได้ขอวิธีที่ "ดีที่สุด" เพียงชี้ว่าควรระวังอะไรและอาจทำให้เกิดความเศร้าโศกเพื่อที่เราจะได้พยายามหลีกเลี่ยง นี่จะเป็นโครงการ C ++ แต่ข้อมูล C จะช่วยผู้อ่านในอนาคต
44 c++  headers  include 

3
ความแตกต่างระหว่างคลาสย่อยและประเภทย่อยคืออะไร?
คำตอบการจัดอันดับสูงสุดที่จะคำถามนี้เกี่ยวกับ Liskov ชดเชยหลักการใช้เวลาปวดจะแยกแยะระหว่างข้อกำหนดย่อยและsubclass นอกจากนี้ยังทำให้จุดที่บางภาษาทำให้ทั้งสองเป็นคู่ในขณะที่คนอื่นทำไม่ได้ สำหรับภาษาเชิงวัตถุที่ฉันคุ้นเคยมากที่สุด (Python, C ++), "type" และ "class" เป็นแนวคิดที่มีความหมายเหมือนกัน ในแง่ของ C ++ การแยกประเภทย่อยและคลาสย่อยหมายความว่าอย่างไร กล่าวว่าเช่นว่าFooเป็น subclass FooBaseแต่ไม่ได้เป็นชนิดย่อยของ หากfooเป็นตัวอย่างของFooสายนี้จะ: FooBase* fbPoint = &amp;foo; ไม่ถูกต้องอีกต่อไป?

11
อะไรคือวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับ ints ที่ไม่ได้ลงชื่อ?
ฉันใช้ ints ที่ไม่ได้ลงชื่อทุกที่และฉันไม่แน่ใจว่าควรจะ ซึ่งอาจมาจากคอลัมน์รหัสคีย์หลักของฐานข้อมูลไปจนถึงตัวนับ ฯลฯ หากตัวเลขไม่ควรเป็นค่าลบฉันจะใช้ int ที่ไม่ได้ลงนามเสมอ อย่างไรก็ตามฉันสังเกตจากรหัสของผู้อื่นว่าไม่มีใครทำเช่นนี้ มีบางอย่างที่สำคัญที่ฉันมองข้ามหรือไม่? แก้ไข: เนื่องจากคำถามนี้ฉันยังสังเกตเห็นว่าใน C การคืนค่าลบสำหรับข้อผิดพลาดเป็นเรื่องธรรมดาแทนที่จะทิ้งข้อยกเว้นเช่นเดียวกับใน C ++

5
ตัวแปรใน C ++ เก็บประเภทของพวกเขาอย่างไร
หากฉันกำหนดตัวแปรประเภทหนึ่ง (ซึ่งเท่าที่ฉันรู้เพียงแค่จัดสรรข้อมูลสำหรับเนื้อหาของตัวแปร) มันจะติดตามชนิดของตัวแปรชนิดใดได้อย่างไร

6
เหตุใด Facebook จึงแปลงรหัส PHP เป็น C ++ [ปิด]
ฉันอ่านว่า Facebook เริ่มต้นใน PHP และจากนั้นเพื่อเพิ่มความเร็วพวกเขาก็รวบรวม PHP เป็นรหัส C ++ หากเป็นกรณีนี้ทำไมพวกเขาไม่ทำ: เพียงแค่เขียนโปรแกรมใน c ++? แน่นอนว่าจะต้องมีข้อผิดพลาด / ข้อบกพร่องบางอย่างเมื่อกดปุ่มวิเศษแปลภาษาที่พอร์ต PHP ไปยังรหัส c ++ ใช่ไหม? ถ้าตัวแปลงที่น่าประทับใจนี้ใช้งานได้ดีทำไมถึงติดกับ PHP เลย? ทำไมไม่ใช้อะไรอย่าง Ruby หรือ Python ล่ะ? หมายเหตุ - ฉันเลือกทั้งสองอย่างนี้แบบสุ่ม แต่ส่วนใหญ่เป็นเพราะเกือบทุกคนบอกว่าการเข้ารหัสในภาษาเหล่านั้นเป็น "ความสุข" ดังนั้นทำไมไม่พัฒนาเป็นภาษาที่ยอดเยี่ยมแล้วกดปุ่มวิเศษ c ++ รวบรวม?
42 c++  php  compiler  facebook 

7
เหตุใดสมาชิกข้อมูลแบบคงที่จึงต้องกำหนดนอกคลาสแยกต่างหากใน C ++ (ไม่เหมือนกับ Java)
class A { static int foo () {} // ok static int x; // &lt;--- needed to be defined separately in .cpp file }; ฉันไม่เห็นความต้องการในการA::xกำหนดแยกต่างหากในไฟล์. cpp (หรือไฟล์เดียวกันสำหรับแม่แบบ) ทำไมไม่สามารถA::xประกาศและกำหนดในเวลาเดียวกันได้? มันถูกห้ามด้วยเหตุผลทางประวัติศาสตร์หรือไม่? คำถามหลักของฉันคือมันจะส่งผลกระทบต่อฟังก์ชั่นใด ๆ หากstaticข้อมูลสมาชิกถูกประกาศ / กำหนดในเวลาเดียวกัน (เช่นเดียวกับJava )?

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