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

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


3
ปิดใช้งานตัวสร้างสำเนา
ฉันมีชั้นเรียน: class SymbolIndexer { protected: SymbolIndexer ( ) { } public: static inline SymbolIndexer & GetUniqueInstance ( ) { static SymbolIndexer uniqueinstance_ ; return uniqueinstance_ ; } }; ฉันจะแก้ไขเพื่อปิดการใช้งานรหัสเช่น: SymbolIndexer symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( ); และอนุญาตเฉพาะรหัสเช่น: SymbolIndexer & ref_symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );

13
คำเตือน libpng: iCCP: รู้จักโปรไฟล์ sRGB ไม่ถูกต้อง
ฉันกำลังพยายามโหลดภาพ PNG โดยใช้ SDL แต่โปรแกรมไม่ทำงานและข้อผิดพลาดนี้ปรากฏขึ้นในคอนโซล คำเตือน libpng: iCCP: รู้จักโปรไฟล์ sRGB ไม่ถูกต้อง เหตุใดคำเตือนนี้จึงปรากฏขึ้น ฉันควรทำอย่างไรเพื่อแก้ไขปัญหานี้
173 c++  warnings  sdl  rgb  libpng 

10
ฉันจะประกาศและกำหนดตัวแปรหลายตัวในหนึ่งบรรทัดโดยใช้ C ++ ได้อย่างไร
ฉันมักจะคิดเสมอว่าถ้าฉันประกาศตัวแปรทั้งสามนี้พวกเขาจะมีค่า 0 int column, row, index = 0; แต่ฉันพบว่ามีเพียงดัชนีเท่านั้นที่เท่ากับศูนย์ & อื่น ๆ ที่เป็นขยะเช่น 844553 & 2423445 ฉันจะเริ่มต้นตัวแปรเหล่านี้ทั้งหมดให้เป็นศูนย์โดยไม่ต้องประกาศแต่ละตัวแปรในบรรทัดใหม่ได้อย่างไร
173 c++ 

12
วิธีใช้ C ++ ใน Go
ในภาษาGoใหม่ฉันจะเรียกรหัส C ++ ได้อย่างไร ในคำอื่น ๆ ฉันจะห่อคลาส C ++ ของฉันและใช้ใน Go ได้อย่างไร
173 c++  wrapper  go 

2
shared_ptr ไปยังอาร์เรย์: ควรใช้หรือไม่
shared_ptrเพียงแค่การสอบถามเกี่ยวกับการขนาดเล็ก เป็นวิธีปฏิบัติที่ดีที่จะใช้การshared_ptrชี้ไปที่อาร์เรย์หรือไม่ ตัวอย่างเช่น, shared_ptr<int> sp(new int[10]); ถ้าไม่เช่นนั้นทำไมไม่ เหตุผลหนึ่งที่ฉันทำไปแล้วตระหนักถึงความเป็นหนึ่งไม่สามารถเพิ่ม / shared_ptrพร่อง ดังนั้นจึงไม่สามารถใช้งานได้เหมือนตัวชี้ปกติไปยังอาร์เรย์
172 c++  c++11  shared-ptr 

13
ฟังก์ชั่นเสมือนจริงแบบอินไลน์เป็นเรื่องที่ไม่สมเหตุสมผลหรือไม่?
ฉันได้รับคำถามนี้เมื่อฉันได้รับรหัสตรวจสอบความคิดเห็นว่าฟังก์ชั่นเสมือนไม่จำเป็นต้องอยู่ในบรรทัด ฉันคิดว่าฟังก์ชั่นเสมือนแบบอินไลน์อาจมีประโยชน์ในสถานการณ์ที่เรียกใช้ฟังก์ชันบนวัตถุโดยตรง แต่ข้อโต้แย้งโต้เถียงกันในใจของฉันก็คือ - ทำไมคนเราถึงต้องการกำหนดเสมือนและใช้วัตถุเพื่อเรียกวิธีการ เป็นการดีที่สุดที่จะไม่ใช้ฟังก์ชั่นเสมือนแบบอินไลน์เนื่องจากพวกมันแทบไม่เคยขยายเลย ข้อมูลโค้ดที่ฉันใช้สำหรับการวิเคราะห์: class Temp { public: virtual ~Temp() { } virtual void myVirtualFunction() const { cout<<"Temp::myVirtualFunction"<<endl; } }; class TempDerived : public Temp { public: void myVirtualFunction() const { cout<<"TempDerived::myVirtualFunction"<<endl; } }; int main(void) { TempDerived aDerivedObj; //Compiler thinks it's safe to expand the virtual …

11
ใช้ G ++ เพื่อรวบรวมไฟล์. cpp และ. h หลายไฟล์
ฉันเพิ่งได้รับรหัส C ++ ที่เขียนได้ไม่ดีกับไฟล์ cpp หนึ่งไฟล์ซึ่งมีฟังก์ชันหลักและฟังก์ชันอื่น ๆ นอกจากนี้ยังมี.hไฟล์ที่มีคลาสและคำจำกัดความของฟังก์ชั่น g++ main.cppจนถึงขณะนี้โปรแกรมที่ถูกรวบรวมโดยใช้คำสั่ง ตอนนี้ฉันแยกชั้นเรียน.hและ.cppไฟล์ฉันจำเป็นต้องใช้ makefile หรือไม่ฉันยังสามารถใช้g++ main.cppคำสั่งได้หรือไม่

4
กระโดดแพงด้วย GCC 5.4.0
ฉันมีฟังก์ชั่นที่มีลักษณะเช่นนี้ (แสดงเฉพาะส่วนที่สำคัญ): double CompareShifted(const std::vector<uint16_t>& l, const std::vector<uint16_t> &curr, int shift, int shiftY) { ... for(std::size_t i=std::max(0,-shift);i<max;i++) { if ((curr[i] < 479) && (l[i + shift] < 479)) { nontopOverlap++; } ... } ... } เขียนแบบนี้ฟังก์ชั่นนี้ใช้เวลาประมาณ 34ms บนเครื่องของฉัน หลังจากเปลี่ยนเงื่อนไขเป็นการคูณแบบบูล (ทำให้โค้ดมีลักษณะดังนี้): double CompareShifted(const std::vector<uint16_t>& l, const std::vector<uint16_t> &curr, int shift, int …
171 c++  gcc 


7
Objective-C แตกต่างจาก C ++ อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา อะไรคือความแตกต่างที่สำคัญระหว่าง Objective-C และ C ++ ในแง่ของไวยากรณ์, คุณสมบัติ, กระบวนทัศน์, กรอบงานและห้องสมุด? * สำคัญ: เป้าหมายของฉันคือไม่เริ่มสงครามการแสดงระหว่างสองภาษา ฉันแค่ต้องการข้อเท็จจริงที่ยากจริง ในความเป็นจริงคำถามของฉันไม่เกี่ยวข้องกับประสิทธิภาพ! โปรดให้แหล่งที่มาสำหรับสิ่งที่อาจดูเหมือนเป็นความคิดเห็น
171 c++  objective-c 

17
ฉันจะแปลง double เป็นสตริงใน C ++ ได้อย่างไร
ฉันต้องการเก็บ double เป็นสตริง ฉันรู้ว่าฉันสามารถใช้งานได้printfถ้าฉันต้องการแสดง แต่ฉันต้องการเก็บไว้ในตัวแปรสตริงเพื่อที่ฉันจะสามารถเก็บไว้ในแผนที่ได้ในภายหลัง (ตามค่าไม่ใช่กุญแจ )
171 c++  string  double 

2
ทำไมคอมไพเลอร์สามารถปรับแต่งแลมบ์ดาได้ดีกว่าฟังก์ชั่นธรรมดา?
ในหนังสือของเขาThe C++ Standard Library (Second Edition)Nicolai Josuttis ระบุว่า lambdas สามารถปรับให้เหมาะสมโดยคอมไพเลอร์มากกว่าฟังก์ชั่นธรรมดา นอกจากนี้คอมไพเลอร์ C ++ เพิ่มประสิทธิภาพ lambdas ได้ดีกว่าฟังก์ชั่นทั่วไป (หน้า 213) ทำไมถึงเป็นอย่างนั้น? ฉันคิดว่าเมื่อพูดถึงการอินไลน์ก็ไม่น่าจะมีความแตกต่างอีกต่อไป เหตุผลเดียวที่ฉันคิดได้ก็คือคอมไพเลอร์อาจมีบริบทท้องถิ่นที่ดีขึ้นกับลูกแกะและสิ่งเหล่านี้สามารถทำให้สมมติฐานมากขึ้นและดำเนินการเพิ่มประสิทธิภาพมากขึ้น

15
C ++ แปลงสตริง (หรืออักขระ *) เป็น wstring (หรือ wchar_t *)
string s = "おはよう"; wstring ws = FUNCTION(s, ws); ฉันจะกำหนดเนื้อหาของ s ให้กับ ws ได้อย่างไร ค้นหา google และใช้เทคนิคบางอย่าง แต่ไม่สามารถกำหนดเนื้อหาที่แน่นอนได้ เนื้อหาผิดเพี้ยน
171 c++  string  wstring 


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