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

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

11
เหตุใดจึงไม่เรียกเมธอด public const เมื่อ non-const เป็นแบบส่วนตัว
พิจารณารหัสนี้: struct A { void foo() const { std::cout << "const" << std::endl; } private: void foo() { std::cout << "non - const" << std::endl; } }; int main() { A a; a.foo(); } ข้อผิดพลาดของคอมไพเลอร์คือ: ข้อผิดพลาด: 'void A :: foo ()' is private` แต่เมื่อฉันลบไพรเวตมันก็ใช้ได้ เหตุใดจึงไม่เรียกเมธอด public const เมื่อ non-const เป็นแบบส่วนตัว …

3
Visual Studio 2015 ไม่มี cl.exe
ฉันดาวน์โหลด Visual C ++ และ Visual Studio แต่ไม่พบcl.exeไฟล์ C ++ ของฉัน เส้นทางไปยังการติดตั้งคือ C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin ฉันจะหาคอมไพเลอร์เพื่อคอมไพล์โค้ด C ++ ได้ที่ไหน?

2
ฉันจะสร้างอินสแตนซ์ฟังก์ชันเทมเพลตอย่างชัดเจนได้อย่างไร
ฉันมีฟังก์ชันเทมเพลตที่มีอาร์กิวเมนต์เดียว ฉันต้องสร้างอินสแตนซ์ของฟังก์ชันนั้นโดยไม่เรียกใช้ฟังก์ชันนั้นหมายความว่าฉันต้องสร้างอินสแตนซ์อย่างชัดเจน ฉันมีฟังก์ชั่นนี้: template <class T> int function_name(T a) {} ฉันสร้างอินสแตนซ์ฟังก์ชันนั้นดังนี้: template int function_name<int>(int); แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: error: expected primary-expression before 'template' error: expected `;' before 'template'
117 c++  templates 

4
เหตุใดเราจึงต้องใช้ argc ในขณะที่มีค่าว่างอยู่ท้าย argv เสมอ
ดูเหมือนว่าargv[argc]อยู่เสมอดังนั้นผมคิดว่าเราสามารถสำรวจรายการอาร์กิวเมนต์โดยไม่ต้องNULL ลูปargcเดียวwhileจะทำสิ่งนี้ หากมีการNULLต่อท้ายargvเสมอทำไมเราต้องมีargc?
117 c++  c  main 

4
วิธีการนำ ostringstream กลับมาใช้ใหม่
ฉันต้องการล้างข้อมูลและนำ ostringstream กลับมาใช้ใหม่ (และบัฟเฟอร์พื้นฐาน) เพื่อที่แอปของฉันจะได้ไม่ต้องทำการจัดสรรให้มากนัก ฉันจะรีเซ็ตวัตถุเป็นสถานะเริ่มต้นได้อย่างไร
117 c++  stl  reset  ostringstream 

12
'const static' หมายถึงอะไรใน C และ C ++
const static int foo = 42; ฉันเห็นสิ่งนี้ในโค้ดบางอย่างที่นี่ใน StackOverflow และฉันคิดไม่ออกว่ามันทำอะไร จากนั้นฉันก็เห็นคำตอบที่สับสนในฟอรัมอื่น ๆ ฉันเดาได้ดีที่สุดคือใช้ใน C เพื่อซ่อนค่าคงที่fooจากโมดูลอื่น ๆ ถูกต้องหรือไม่ ถ้าเป็นเช่นนั้นทำไมทุกคนถึงใช้มันในบริบท C ++ ซึ่งคุณสามารถทำได้private?
117 c++  c 

11
ความหมายของรหัสข้อยกเว้น“ EXC_I386_GPFLT” คืออะไร?
ความหมายของรหัสข้อยกเว้นEXC_I386_GPFLTคืออะไร? ความหมายแตกต่างกันไปตามสถานการณ์หรือไม่? ในกรณีนั้นฉันหมายถึงประเภทEXC_BAD_ACCESSข้อยกเว้นที่มีรหัสข้อยกเว้นEXC_I386_GPFLT โปรแกรมได้รับการพัฒนาใน Xcode 5.0.1 ซึ่งเกี่ยวข้องกับcblas_zgemm()ไลบรารี BLAS (ฉันเดาว่ามันไม่สำคัญ ... ) ขอบคุณมาก!
117 c++  c  exc-bad-access 

5
ชั้นในสามารถเข้าถึงตัวแปรส่วนตัวได้หรือไม่?
class Outer { class Inner { public: Inner() {} void func() ; }; private: static const char* const MYCONST; int var; }; void Outer::Inner::func() { var = 1; } const char* const Outer::MYCONST = "myconst"; ข้อผิดพลาดนี้เกิดขึ้นเมื่อฉันคอมไพล์กับคลาส Outer :: Inner 'ไม่มีสมาชิกชื่อ `var'
117 c++  inner-classes 

12
C ++ เทียบเท่ากับรูปแบบตัวสร้าง Python
ฉันมีตัวอย่างโค้ด Python ที่ต้องเลียนแบบใน C ++ ฉันไม่ต้องการโซลูชันที่เฉพาะเจาะจงใด ๆ (เช่นโซลูชันผลตอบแทนตามกิจวัตรร่วมแม้ว่าจะเป็นคำตอบที่ยอมรับได้เช่นกัน) แต่ฉันต้องสร้างความหมายในบางลักษณะ หลาม นี่คือตัวสร้างลำดับขั้นพื้นฐานซึ่งมีขนาดใหญ่เกินไปที่จะจัดเก็บเวอร์ชันที่เป็นรูปธรรมอย่างชัดเจน def pair_sequence(): for i in range(2**32): for j in range(2**32): yield (i, j) เป้าหมายคือการรักษาสองอินสแตนซ์ของลำดับข้างต้นและวนซ้ำในช่วงกึ่งล็อค แต่เป็นชิ้น ๆ ในตัวอย่างด้านล่างfirst_passใช้ลำดับของคู่เพื่อเริ่มต้นบัฟเฟอร์และsecond_passสร้างลำดับที่แน่นอนเหมือนกันและประมวลผลบัฟเฟอร์อีกครั้ง def run(): seq1 = pair_sequence() seq2 = pair_sequence() buffer = [0] * 1000 first_pass(seq1, buffer) second_pass(seq2, buffer) ... repeat ... C ++ …

3
ตัวอย่าง CMake ที่เรียบง่าย แต่สมบูรณ์ที่สุด
ฉันรู้สึกสับสนโดยสิ้นเชิงกับวิธีการทำงานของ CMake ทุกครั้งที่ฉันคิดว่าฉันเริ่มเข้าใจวิธีการเขียน CMake มากขึ้นมันจะหายไปในตัวอย่างถัดไปที่ฉันอ่าน สิ่งที่ฉันอยากรู้คือฉันควรจัดโครงสร้างโครงการของฉันอย่างไรเพื่อให้ CMake ของฉันต้องการการบำรุงรักษาน้อยที่สุดในอนาคต ตัวอย่างเช่นฉันไม่ต้องการอัปเดต CMakeList.txt เมื่อฉันเพิ่มโฟลเดอร์ใหม่ในโครงสร้าง src ซึ่งทำงานเหมือนกับโฟลเดอร์ src อื่น ๆ ทั้งหมด นี่เป็นวิธีที่ฉันจินตนาการถึงโครงสร้างโครงการของฉัน แต่โปรดเป็นเพียงตัวอย่างเท่านั้น หากวิธีที่แนะนำแตกต่างกันโปรดบอกฉันและบอกฉันว่าต้องทำอย่างไร myProject src/ module1/ module1.h module1.cpp module2/ [...] main.cpp test/ test1.cpp resources/ file.png bin [execute cmake ..] อย่างไรก็ตามสิ่งสำคัญคือโปรแกรมของฉันต้องรู้ว่าทรัพยากรอยู่ที่ไหน ฉันต้องการทราบวิธีการจัดการทรัพยากรที่แนะนำ ฉันไม่ต้องการเข้าถึงทรัพยากรของฉันด้วย "../resources/file.png"
117 c++  cmake  project-setup 

8
static_assert ทำอะไรและคุณจะใช้เพื่ออะไร
คุณช่วยยกตัวอย่างได้ไหมว่าstatic_assert(...)('C ++ 11') จะแก้ปัญหาได้อย่างสวยงาม? assert(...)ผมคุ้นเคยกับเวลาทำงาน เมื่อไหร่ที่ฉันควรชอบstatic_assert(...)มากกว่าปกติassert(...)? นอกจากนี้ในboostนั้นมีสิ่งที่เรียกว่าBOOST_STATIC_ASSERTมันเหมือนกับstatic_assert(...)?

3
C ++ ส่งคืนการอ้างอิงถึงตัวแปรภายใน
รหัสต่อไปนี้ (func1 ()) ถูกต้องหรือไม่หากต้องส่งคืน i ฉันจำได้ว่าเคยอ่านที่ไหนสักแห่งว่ามีปัญหาเมื่อส่งคืนการอ้างอิงถึงตัวแปรท้องถิ่น ต่างจาก func2 () อย่างไร? int& func1() { int i; i = 1; return i; } int* func2() { int* p; p = new int; *p = 1; return p; }
117 c++ 

6
หน่วยความจำที่รั่วไหลจะปลดปล่อยเมื่อออกจากโปรแกรมหรือไม่?
หากฉันตั้งโปรแกรม - โดยไม่รู้ตัว - หน่วยความจำรั่วและแอปพลิเคชันหยุดทำงานหน่วยความจำที่รั่วไหลจะเป็นอิสระหรือไม่?
117 c++  memory-leaks 

30
ข้อ จำกัด C ++ เป็นอย่างไรเมื่อเทียบกับภาษา C? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ต่อไปนี้เป็นประโยชน์ของ C ++ C ++ มีคุณสมบัติเฉพาะที่พวกเขาถามถึง คอมไพเลอร์ C ของพวกเขาเกือบจะเป็นคอมไพเลอร์ C ++ จริงๆดังนั้นจึงไม่มีผลกระทบด้านต้นทุนซอฟต์แวร์ C ++ นั้นพกพาได้เช่นเดียวกับ C โค้ด C ++ สามารถมีประสิทธิภาพเท่ากับ C (หรือมากกว่านั้นหรือน้อยกว่านั้นก็ได้) มีเหตุผลที่เป็นรูปธรรมและสถานการณ์เฉพาะที่ต้องใช้ C มากกว่า C ++ หรือไม่? อ้างอิงถึงคำถามนี้: Library for generics in C ไม่ซ้ำกันเนื่องจากคำถามนี้ถามเกี่ยวกับข้อ จำกัด ด้านภาษาและไม่เกี่ยวกับควร / ไม่ควรเรียนรู้ภาษาหนึ่งกับอีกภาษาหนึ่ง โพสต์ของ Peter …
116 c++  c 

14
ฉันควรเรียนภาษา C ก่อนเรียน C ++ หรือไม่? [ปิด]
ตามที่กล่าวไว้ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา วันนี้ฉันไปเยี่ยมแผนก CS ของมหาวิทยาลัยและในการทัวร์ห้องแล็บเราได้นั่งลงเล่นกับโครงการปีสุดท้ายสองสามโครงการจากนักศึกษาระดับปริญญาตรี สิ่งหนึ่งที่ดีเป็นพิเศษ - เกมดาวเคราะห์น้อยประเภท FPS ฉันตัดสินใจที่จะดูในsrcไดเรกทอรีเพื่อพบว่ามันทำใน C ++ (โครงการอื่น ๆ ส่วนใหญ่เป็นแอป Java 3D) ฉันไม่เคยทำ C มาก่อน แต่ฉันเคยดูรหัส C มาก่อนแล้ว จากที่ผมเห็นรหัส. cpp ในเกมนี้ดูไม่แตกต่างกันมาก ฉันสนใจที่จะเรียนรู้ C หรือ C ++ แต่อาจจะเรียนรู้อย่างอื่นในภายหลัง มีข้อได้เปรียบสำหรับการเรียนรู้ก่อนอื่นหรือไม่และถ้าเป็นเช่นนั้นข้อใด
116 c++  c 

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