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

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

6
Aggregates และ PODs คืออะไรและทำไมพิเศษ?
นี้คำถามที่พบบ่อยเป็นเรื่องเกี่ยวกับปริมาณและ PODs และครอบคลุมวัสดุดังต่อไปนี้: อะไรคือมวล ? อะไรคือPOD s (ข้อมูล Plain Old)? พวกเขาเกี่ยวข้องกันอย่างไร พวกเขาพิเศษอย่างไรและทำไม การเปลี่ยนแปลงสำหรับ C ++ 11 คืออะไร

6
กฎการยกเลิก Iterator
กฎการตรวจสอบความถูกต้องของตัววนซ้ำสำหรับคอนเทนเนอร์ C ++ มีอะไรบ้าง โดยเฉพาะอย่างยิ่งในรูปแบบรายการสรุป (หมายเหตุ: นี่คือหมายถึงการเป็นรายการที่จะกองมากเกินของ C ++ คำถามที่พบบ่อย . ถ้าคุณต้องการที่จะวิจารณ์ความคิดของการให้คำถามที่พบบ่อยในรูปแบบนี้แล้วโพสต์บนเมตาที่เริ่มต้นทั้งหมดนี้ . จะเป็นสถานที่ที่จะทำเช่นนั้นได้คำตอบ คำถามนั้นได้รับการตรวจสอบในห้องสนทนา C ++ซึ่งแนวคิด FAQ เริ่มต้นตั้งแต่แรกดังนั้นคำตอบของคุณมีโอกาสมากที่จะได้รับการอ่านโดยผู้ที่คิดแนวคิดนี้)
543 c++  c++11  iterator  c++17  c++-faq 

13
ทำไมการคอมไพล์ C ++ ใช้เวลานานมาก
การรวบรวมไฟล์ C ++ ใช้เวลานานมากเมื่อเทียบกับ C # และ Java การคอมไพล์ไฟล์ C ++ ใช้เวลานานกว่าการรันสคริปต์ Python ขนาดปกติ ขณะนี้ฉันใช้ VC ++ แต่ก็เหมือนกันกับคอมไพเลอร์ใด ๆ ทำไมนี้ เหตุผลสองประการที่ฉันคิดได้คือการโหลดไฟล์ส่วนหัวและเรียกใช้ตัวประมวลผลล่วงหน้า แต่ดูเหมือนจะไม่อธิบายว่าทำไมจึงใช้เวลานาน



8
พฤติกรรมที่ไม่ได้กำหนดไม่ระบุและไม่ได้กำหนดและการนำไปปฏิบัติ
พฤติกรรมที่ไม่ได้กำหนดใน C และ C ++ คืออะไร สิ่งที่เกี่ยวกับพฤติกรรมที่ไม่ระบุและพฤติกรรมที่กำหนดไว้ในการนำไปใช้ ความแตกต่างระหว่างพวกเขาคืออะไร?

18
คำหลัก 'ไม่แน่นอน' มีวัตถุประสงค์อื่นนอกเหนือจากการอนุญาตให้แก้ไขตัวแปรโดยฟังก์ชัน const หรือไม่
ไม่นานมานี้ฉันพบรหัสบางอย่างที่ทำเครื่องหมายตัวแปรสมาชิกของคลาสด้วยmutableคำหลัก เท่าที่ฉันเห็นมันก็ช่วยให้คุณสามารถปรับเปลี่ยนตัวแปรในconstวิธีการ: class Foo { private: mutable bool done_; public: void doSomething() const { ...; done_ = true; } }; นี่เป็นเพียงการใช้คำหลักนี้เท่านั้นหรือมากกว่าที่จะเป็นไปตามตา? ฉันได้ใช้เทคนิคนี้ในชั้นเรียนทำเครื่องหมายboost::mutexเป็นconstฟังก์ชั่นที่ไม่อนุญาตให้ล็อคเพื่อเหตุผลด้านความปลอดภัยของเธรด แต่ตามจริงแล้วมันรู้สึกเหมือนแฮ็คเล็กน้อย
527 c++  keyword  mutable 

24
ฉันจะประกาศอาร์เรย์ 2d ใน C ++ โดยใช้ใหม่ได้อย่างไร
ฉันจะประกาศอาร์เรย์ 2d โดยใช้ใหม่ได้อย่างไร เช่นสำหรับอาร์เรย์ "ปกติ" ฉันจะ: int* ary = new int[Size] แต่ int** ary = new int[sizeY][sizeX] a) ไม่ทำงาน / คอมไพล์และ b) ไม่ทำสิ่งที่สำเร็จ: int ary[sizeY][sizeX] ทำ.

13
การจัดเก็บนิยามฟังก์ชันเท็มเพลต C ++ ในไฟล์. CPP
ฉันมีรหัสเทมเพลตที่ฉันต้องการเก็บไว้ในไฟล์ CPP แทนที่จะเป็นแบบอินไลน์ในส่วนหัว ฉันรู้ว่าสิ่งนี้สามารถทำได้ตราบใดที่คุณรู้ว่าจะใช้เทมเพลตชนิดใด ตัวอย่างเช่น: ไฟล์. h class foo { public: template <typename T> void do(const T& t); }; ไฟล์. cpp template <typename T> void foo::do(const T& t) { // Do something with t } template void foo::do<int>(const int&); template void foo::do<std::string>(const std::string&); หมายเหตุสองบรรทัดสุดท้าย - ฟังก์ชั่นเทมเพลต foo :: do ใช้กับสตริง …
526 c++  templates 

30
วิธีที่มีประสิทธิภาพมากที่สุดสำหรับการเปรียบเทียบแบบลอยและแบบคู่คืออะไร
อะไรจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการเปรียบเทียบค่าdoubleสองหรือสองfloatค่า การทำเช่นนี้ไม่ถูกต้อง: bool CompareDoubles1 (double A, double B) { return A == B; } แต่สิ่งที่ชอบ: bool CompareDoubles2 (double A, double B) { diff = A - B; return (diff < EPSILON) && (-diff < EPSILON); } ดูเหมือนว่าการแปรรูปขยะ ไม่มีใครรู้ว่าเครื่องมือเปรียบเทียบที่ชาญฉลาดกว่านี้คือใคร?


17
วิธีการเริ่มต้นสมาชิกคงที่ส่วนตัวใน C ++?
วิธีที่ดีที่สุดในการเริ่มต้นสมาชิกข้อมูลส่วนตัวแบบคงที่ใน C ++ คืออะไร? ฉันลองสิ่งนี้ในไฟล์ส่วนหัวของฉัน แต่มันทำให้ฉันมีข้อผิดพลาด linker: class foo { private: static int i; }; int foo::i = 0; ฉันเดาว่าเป็นเพราะฉันไม่สามารถเริ่มสมาชิกส่วนตัวจากนอกห้องเรียนได้ ดังนั้นวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?

9
การดีบักด้วยพารามิเตอร์บรรทัดคำสั่งใน Visual Studio
ฉันกำลังพัฒนาแอปพลิเคชันบรรทัดคำสั่ง C ++ ใน Visual Studio และจำเป็นต้องดีบักด้วยอาร์กิวเมนต์บรรทัดคำสั่ง ในขณะนี้ฉันเพิ่งเรียกใช้ไฟล์ EXE ที่สร้างขึ้นด้วยอาร์กิวเมนต์ที่ฉันต้องการ (เช่นนี้program.exe -file.txt) แต่วิธีนี้ฉันไม่สามารถดีบักได้ มีบางที่ที่ฉันสามารถระบุอาร์กิวเมนต์สำหรับการดีบักหรือไม่


8
int argc, char * argv [] หมายถึงอะไร
ในหลาย C ++ IDE และคอมไพเลอร์เมื่อมันสร้างฟังก์ชั่นหลักสำหรับคุณดูเหมือนว่า: int main(int argc, char *argv[]) เมื่อฉันใช้รหัส C ++ โดยไม่มี IDE เพียงแค่คอมไพเลอร์บรรทัดคำสั่งฉันพิมพ์: int main() ไม่มีพารามิเตอร์ใด ๆ สิ่งนี้หมายความว่าอะไรและมีความสำคัญต่อโปรแกรมของฉันหรือไม่

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