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

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


28
มี C ++ gdb GUI สำหรับ Linux หรือไม่ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ สั้น ๆ : ไม่มีใครรู้ GUI สำหรับ gdb ที่นำมาใช้หรือใกล้เคียงกับคุณสมบัติที่คุณได้รับในเวอร์ชันล่าสุดของ Visual C ++ ในรายละเอียด: ในฐานะคนที่ใช้เวลาเขียนโปรแกรมใน Windows บล็อกที่มีขนาดใหญ่กว่าที่ฉันเคยพบเมื่อใดก็ตามที่ฉันต้องใช้รหัส C ++ ใน Linux คือการดีบักทุกอย่างโดยใช้ commandline gdb ทำให้ฉันใช้เวลานานกว่าหลายเท่า Visual Studio และดูเหมือนว่าจะไม่ได้ดีขึ้นด้วยการฝึกฝน บางสิ่งง่ายกว่าหรือเร็วกว่าในการแสดงภาพกราฟิก โดยเฉพาะฉันกำลังมองหา GUI ที่: จัดการพื้นฐานทั้งหมดเช่นการก้าวไปสู่โค้ดดูตัวแปรและเบรกพอยต์ ทำความเข้าใจและสามารถแสดงเนื้อหาของชนิดข้อมูล C ++ ที่ซับซ้อนและซ้อนกัน ไม่สับสนโดยเฉพาะอย่างยิ่งสามารถก้าวผ่านรหัสเทมเพลตและโครงสร้างข้อมูลอย่างชาญฉลาดในขณะที่แสดงข้อมูลที่เกี่ยวข้องเช่นประเภทพารามิเตอร์ สามารถจัดการแอปพลิเคชั่นที่เป็นเธรดและสลับไปมาระหว่างเธรดต่างๆไปจนถึงขั้นตอนหรือดูสถานะของ สามารถจัดการกับการแนบกับกระบวนการที่เริ่มทำงานแล้วหรืออ่านการถ่ายโอนข้อมูลหลักนอกเหนือจากการเริ่มโปรแกรมใน gdb หากโปรแกรมดังกล่าวไม่มีอยู่ฉันก็อยากจะฟังเกี่ยวกับประสบการณ์ที่ผู้คนเคยมีกับโปรแกรมที่ตรงกับสัญลักษณ์แสดงหัวข้อย่อยอย่างน้อย …
210 c++  linux  gdb  debugging 


8
การส่งแลมบ์ดาเป็นตัวชี้ฟังก์ชัน
เป็นไปได้ไหมที่จะส่งผ่านฟังก์ชัน lambda เป็นตัวชี้ฟังก์ชัน ถ้าเป็นเช่นนั้นฉันจะต้องทำสิ่งที่ไม่ถูกต้องเพราะฉันได้รับข้อผิดพลาดในการรวบรวม ลองพิจารณาตัวอย่างต่อไปนี้ using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int x = 5; Decide greaterThanThree{ [x](){ return x > 3; } }; return 0; } เมื่อฉันพยายามรวบรวมสิ่งนี้ฉันได้รับข้อผิดพลาดในการรวบรวมดังต่อไปนี้: In function 'int main()': 17:31: error: the value …

5
เหตุใดพฤติกรรมที่กำหนดไว้ล้นของจำนวนเต็มล้นที่ไม่ได้ลงนาม แต่ล้นจำนวนเต็มที่ลงนามไม่ได้
จำนวนเต็มมากเกินที่ไม่ได้ลงนามนั้นถูกกำหนดไว้อย่างดีทั้งในมาตรฐาน C และ C ++ ตัวอย่างเช่นมาตรฐาน C99 ( §6.2.5/9) การคำนวณที่เกี่ยวข้องกับตัวถูกดำเนินการที่ไม่ได้ลงนามไม่สามารถเกิน fl ow ได้เนื่องจากผลลัพธ์ที่ไม่สามารถแสดงได้ด้วยประเภทจำนวนเต็มที่ไม่ได้ลงนามผลจะลดลงแบบโมดูโลจำนวนที่มากกว่าหนึ่งค่าที่ใหญ่ที่สุดที่สามารถแสดงด้วยประเภทผลลัพธ์ อย่างไรก็ตามทั้งสองมาตรฐานระบุว่าการโอเวอร์โฟลว์จำนวนเต็มที่ลงนามนั้นเป็นพฤติกรรมที่ไม่ได้กำหนด อีกครั้งจากมาตรฐาน C99 ( §3.4.3/1) ตัวอย่างของพฤติกรรมที่ไม่ได้แก้ไขคือพฤติกรรมของจำนวนเต็มส่วนเกิน มีประวัติศาสตร์หรือ (ดีกว่า!) เหตุผลทางเทคนิคสำหรับความคลาดเคลื่อนนี้หรือไม่?

30
C ++ IDE สำหรับ Linux? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันต้องการขยายขอบเขตการเขียนโปรแกรมเป็น Linux ชุดเครื่องมือพื้นฐานที่ดีและเชื่อถือได้มีความสำคัญและอะไรที่เป็นพื้นฐานมากกว่า IDE? ฉันสามารถค้นหาหัวข้อ SO เหล่านี้ได้: IDE ที่มีน้ำหนักเบาสำหรับ linuxและ คุณใช้เครื่องมืออะไรในการพัฒนาแอพพลิเคชั่น C ++ บน Linux ฉันไม่ได้กำลังมองหาIDE ที่มีน้ำหนักเบา ถ้า IDE มีค่าเงินฉันจะจ่ายให้ดังนั้นมันจึงไม่จำเป็นต้องฟรี คำถามของฉันแล้ว: มีอะไรดีการเขียนโปรแกรม C ++ IDE สำหรับ Linux? ค่าต่ำสุดนั้นค่อนข้างเป็นมาตรฐาน: การเน้นไวยากรณ์, การเติมโค้ด (เช่นintellisenseหรือ Eclipse) และการดีบักแบบรวม (เช่นเบรกพอยต์พื้นฐาน) ฉันค้นหาด้วยตัวเอง แต่มีอยู่มากมายที่แทบจะแยกความดีออกจากมือไม่ได้โดยเฉพาะกับคนที่มีประสบการณ์การเขียนโค้ด C …
209 c++  linux  ide 

6
ความแตกต่างระหว่าง "ยาว", "ยาวนาน", "long int" และ "long long int" ใน C ++ คืออะไร
ฉันกำลังเปลี่ยนจาก Java เป็น C ++ และมีคำถามบางอย่างเกี่ยวกับlongชนิดข้อมูล ใน Java จะถือมากขึ้นกว่า 2 จำนวนเต็ม32long x;คุณก็จะเขียน อย่างไรก็ตามใน C ++ ดูเหมือนว่าlongทั้งชนิดข้อมูลและตัวดัดแปลง ดูเหมือนจะมีหลายวิธีที่จะใช้long: long x; long long x; long int x; long long int x; นอกจากนี้ดูเหมือนว่ามีสิ่งต่าง ๆ เช่น: long double x; และอื่น ๆ อะไรคือความแตกต่างระหว่างชนิดข้อมูลต่าง ๆ เหล่านี้และพวกมันมีจุดประสงค์เดียวกันหรือไม่?
209 c++  long-integer 

17
g ++ การอ้างอิงที่ไม่ได้กำหนดไปยัง typeinfo
ฉันเพิ่งพบข้อผิดพลาดต่อไปนี้ (และพบวิธีแก้ปัญหาออนไลน์ แต่ไม่มีอยู่ใน Stack Overflow): (.gnu.linkonce. [stuff]): การอ้างอิงที่ไม่ได้กำหนดถึง [method] [object file] :(. gnu.linkonce. [stuff]): การอ้างอิงที่ไม่ได้กำหนดให้กับ `typeinfo สำหรับ [classname] ' เหตุใดเราจึงอาจได้รับข้อผิดพลาด "การอ้างอิงที่ไม่ได้ระบุถึงตัวเชื่อมโยง typeinfo" อย่างใดอย่างหนึ่งเหล่านี้ (คะแนนโบนัสหากคุณสามารถอธิบายสิ่งที่เกิดขึ้นเบื้องหลัง)
209 c++  linker  g++ 

15
ภาษาขยายตัวอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังเรียนรู้ C ++ และฉันเพิ่งเริ่มเรียนรู้เกี่ยวกับความสามารถของQtในการเขียนโปรแกรม GUI ฉันถามตัวเองคำถามต่อไปนี้: C ++ ซึ่งก่อนหน้านี้ไม่มีไวยากรณ์ที่สามารถขอให้ระบบปฏิบัติการหน้าต่างหรือวิธีการสื่อสารผ่านเครือข่าย (กับ API ที่ฉันไม่เข้าใจอย่างสมบูรณ์ฉันยอมรับ) ก็ได้รับความสามารถดังกล่าวผ่านห้องสมุดที่เขียนด้วยภาษา C ++ เอง? ดูเหมือนว่าฉันจะเป็นวงกลมมาก คุณสามารถใช้คำแนะนำ C ++ ในห้องสมุดเหล่านั้นได้อย่างไร? ฉันรู้ว่าคำถามนี้อาจดูเหมือนเป็นเรื่องเล็กน้อยสำหรับนักพัฒนาซอฟต์แวร์ที่มีประสบการณ์ แต่ฉันค้นคว้ามาหลายชั่วโมงโดยไม่พบการตอบสนองโดยตรง มันถึงจุดที่ฉันไม่สามารถทำตามบทช่วยสอนเกี่ยวกับ Qt ได้เพราะการมีอยู่ของห้องสมุดนั้นเป็นสิ่งที่ฉันเข้าใจไม่ได้

3
ส่งคืนชนิดของ '?:' (ตัวดำเนินการแบบมีเงื่อนไข)
ทำไมคนแรกถึงกลับมาอ้างอิง? int x = 1; int y = 2; (x > y ? x : y) = 100; ในขณะที่สองไม่ได้? int x = 1; long y = 2; (x > y ? x : y) = 100; อันที่จริงที่สองไม่ได้รวบรวมเลย - "ไม่ lvalue ซ้ายของการมอบหมาย"

22
เหตุใด C # จึงไม่มีคำหลัก 'เพื่อน' สไตล์ C ++ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เพื่อนคำหลัก C ++ช่วยให้ผู้class Aที่จะกำหนดให้class Bเป็นเพื่อนของตน นี้จะช่วยให้Class Bการเข้าถึงprivate/ สมาชิกของprotectedclass A ฉันไม่เคยอ่านอะไรเลยว่าทำไมสิ่งนี้ถึงถูกทิ้งไว้ใน C # (และ VB.NET) คำตอบส่วนใหญ่ของคำถาม StackOverflow ก่อนหน้านี้ดูเหมือนจะบอกว่าเป็นส่วนที่มีประโยชน์ของ C ++ และมีเหตุผลที่ดีที่จะใช้ จากประสบการณ์ของฉันฉันต้องยอมรับ คำถามอื่นดูเหมือนว่าฉันจะถามจริง ๆ ว่าจะทำสิ่งที่คล้ายกับfriendในใบสมัคร C # ในขณะที่คำตอบโดยทั่วไปจะหมุนรอบคลาสที่ซ้อนกัน แต่ก็ไม่ได้ดูสวยงามเท่าการใช้friendคำหลัก หนังสือรูปแบบการออกแบบดั้งเดิมใช้เป็นประจำตลอดตัวอย่าง สรุปแล้วทำไมfriendหายไปจาก C # และอะไรคือ "วิธีปฏิบัติที่ดีที่สุด" (หรือวิธี) ในการจำลองใน C # (โดยวิธีการที่internalคำหลักไม่ได้ในสิ่งเดียวกันจะช่วยให้ทุกชั้นเรียนภายในทั้งการชุมนุมในการเข้าถึงinternalสมาชิกในขณะที่friendช่วยให้คุณสามารถที่จะให้ชั้นหนึ่งการเข้าถึงที่สมบูรณ์ไปอีกหนึ่งระดับอื่น ๆ )
208 c#  c++  design-patterns  oop  friend 


19
การใช้อาร์เรย์หรือ std :: vectors ใน C ++ ช่องว่างของประสิทธิภาพคืออะไร
ในหลักสูตร C ++ เราไม่แนะนำให้ใช้อาร์เรย์ C ++ ในโครงการใหม่อีกต่อไป เท่าที่ฉันรู้ Stroustroup ตัวเองไม่แนะนำให้ใช้อาร์เรย์ แต่มีความแตกต่างด้านประสิทธิภาพที่สำคัญหรือไม่
208 c++  arrays  vector 

11
เริ่มต้นด้วยการพัฒนาส่วนขยายของ Internet Explorer อย่างไร
ใครบ้างที่นี่มีประสบการณ์กับ / ในการพัฒนาส่วนขยาย IE ที่สามารถแบ่งปันความรู้ของพวกเขา? ซึ่งจะรวมถึงตัวอย่างโค้ดหรือลิงค์ไปยังสิ่งที่ดีหรือเอกสารเกี่ยวกับกระบวนการหรืออะไรก็ตาม ฉันต้องการทำสิ่งนี้จริงๆ แต่ฉันกำลังตีกำแพงยักษ์พร้อมกับเอกสารหมัดรหัสหมัด / ตัวอย่างโค้ด / การขาดมัน ความช่วยเหลือ / ทรัพยากรใด ๆ ที่คุณสามารถนำเสนอจะได้รับการชื่นชมอย่างมาก โดยเฉพาะฉันต้องการเริ่มต้นด้วยวิธีการเข้าถึง / จัดการ DOM จากภายในส่วนขยาย IE แก้ไขรายละเอียดเพิ่มเติม: โดยหลักการแล้วฉันต้องการสร้างปุ่มแถบเครื่องมือที่เมื่อคลิกแล้วจะเปิดเมนูขึ้นซึ่งมีลิงก์ไปยังไซต์ภายนอก ฉันต้องการเข้าถึง DOM และ plant JavaScript บนหน้าขึ้นอยู่กับเงื่อนไขบางประการ วิธีที่ดีที่สุดในการคงอยู่ของข้อมูลในส่วนขยาย IE คืออะไร? ใน Firefox / Chrome / เบราว์เซอร์ที่ทันสมัยที่สุดคุณใช้window.localStorageแต่เห็นได้ชัดกับ IE8 / IE7 นั่นไม่ใช่ตัวเลือก อาจเป็น SQLite DB หรืออย่างนั้น? ถือว่าโอเคที่จะติดตั้ง. NET …

5
แทรก vs emplace เทียบกับตัวดำเนินการ [] ในแผนที่ c ++
ฉันใช้แผนที่เป็นครั้งแรกและฉันตระหนักว่ามีหลายวิธีในการแทรกองค์ประกอบ คุณสามารถใช้emplace(), operator[]หรือinsert()บวกสายพันธุ์เช่นการใช้หรือvalue_type make_pairแม้ว่าจะมีข้อมูลมากมายเกี่ยวกับพวกเขาทั้งหมดและคำถามเกี่ยวกับบางกรณี แต่ฉันก็ยังไม่เข้าใจภาพรวม ดังนั้นสองคำถามของฉันคือ: อะไรคือข้อได้เปรียบของแต่ละคนที่มีมากกว่าคนอื่น ๆ ? จำเป็นต้องเพิ่ม emplace ลงในมาตรฐานหรือไม่? มีอะไรที่เป็นไปไม่ได้มาก่อนโดยไม่ได้?

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