Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. C++ Baillie-PSW Primality Test: การทดสอบเฉพาะจำนวนแบบ Probabilistic

    Baillie-PSW Primality Test เป็นอัลกอริทึมทดสอบเฉพาะจำนวน (Primality Test) แบบ Probabilistic ที่รวม Miller-Rabin Test** (Base 2) และ Lucas Probable Prime Test** เข้าด้วยกัน ไม่เคยพบ Counterexample (Composite ที่ผ่าน Test) จนถึงปัจจุบัน (2024) ทำให้น่าเชื่อถือมากสำหรับการใช้งานจริง อัลกอริทึม (High L

  2. Initialize Private Static Members ใน C++: Syntax และ C++17 Inline Variables

    Private Static Data Members** ต้อง Initialize นอก Class Definition (Definition) เหมือน Public Static Members แต่เข้าถึงได้เฉพาะ Member Functions และ Friends Classic Syntax (Pre-C++17) // MyClass.h class MyClass { private: static int count_; // Declaration static const int MAX = 100; //

  3. ความหมายของ const ท้ายฟังก์ชันใน C++: Const Member Function

    เมื่อเห็น const อยู่ **ท้าย Declaration ของ Member Function** หมายถึง Const Member Function ซึ่งรับประกันว่า Function นั้น ไม่แก้ไข Non-static Data Members ของ Object Syntax class MyClass { int value_; public: // const ท้าย Function Declaration int getValue() const { // value_

  4. unsigned char ใน C++: ความแตกต่างจาก signed char และการใช้งาน

    ใน C++ มี Character Types 3 แบบ: char, signed char, unsigned char ซึ่งเป็น Distinct Types (ต่างกันทั้งคู่) แม้ขนาดเท่ากัน (1 Byte = 8 Bits) ขนาดและ Range TypeSizeRange (Typical)ใช้สำหรับ signed char1 Byte-128 ถึง +127Small Signed Integer unsigned char1 Byte0 ถึง 255Byte Data, Raw Memory, Extend

  5. พิมพ์ 1 ถึง 1000 ไม่ใช้ Loop/Condition ใน C++: Template Recursion และ Static Member

    โจทย์: พิมพ์ตัวเลข 1 ถึง 1000 โดย ห้ามใช้ Loop (for/while) และ Condition (if/switch) วิธีแก้หลัก 2 แบบ: Template Metaprogramming (Compile-time) และ Static Member + Constructor (Runtime) วิธีที่ 1: Static Member + Constructor Array (Runtime) สร้าง Array ของ Object ขนาด N Constructor จะถูกเรียก N ครั

  6. __FILE__, __LINE__, __FUNCTION__ ใน C++: Macro สำหรับ Debug และ Logging

    Predefined Macros สำหรับข้อมูล Source Location ช่วย Debugging และ Logging ได้อย่างมีประสิทธิภาพ 1. __FILE__: Current File Path String Literal: Path ของไฟล์ที่ Compile (Relative/Absolute ขึ้นกับ Build System) ใช้สำหรับ: Log File Context, Error Reporting ตัวอย่าง #include <iostream>

  7. Converting Constructor ใน C++: Constructor ที่รับ Argument เดียว

    Converting Constructor (Conversion Constructor) คือ Constructor ที่รับ Argument เพียงหนึ่งตัว** (หรือหลายตัวแต่มี Default Arguments จนเหลือ 1 Required Argument) ทำให้เกิด Implicit Conversion จาก Type ของ Argument ไปเป็น Class Type ได้โดยอัตโนมัติ Syntax class MyClass { public: MyClass(int valu

  8. Reentrant Function ใน C/C++: ฟังก์ชันที่ปลอดภัยต่อ Interrupt และ Recursion

    Reentrant Function คือฟังก์ชันที่สามารถ Interrrupt ได้ระหว่างการทำงาน แล้วกลับมาทำงานต่อได้ถูกต้อง** (Re-enter) เหมาะสำหรับ: Interrupt Service Routines (ISR) Signal Handlers Recursive Algorithms Multi-threaded Environments (พื้นฐาน) เงื่อนไขของ Reentrant Function เงื่อนไขเหตุผล

  9. __PRETTY_FUNCTION__, __FUNCTION__, __func__ ใน C/C++: ความแตกต่างและการใช้งาน

    Identifier ทั้งสามใช้สำหรับดึงข้อมูลฟังก์ชันปัจจุบัน แตกต่างกันในระดับรายละเอียดและ Standard Compliance ตารางเปรียบเทียบ IdentifierStandardเนื้อหาตัวอย่าง Output __func__C99, C++11Function Name เท่านั้นmain, foo __FUNCTION__GNU Extension (C/C++)เหมือน __func__main __PRETTY_FUNCTION__GNU Extensi

  10. คำสั่ง volatile ใน C++: การใช้งานกับ Hardware และ ISR

    volatile ใน C++ มีความหมายเหมือน C: บอก Compiler ว่าตัวแปรอาจเปลี่ยนแปลงได้ นอกเหนือจาก Control Flow ของโปรแกรม จึงต้องไม่ Optimize การ Access Syntax volatile int flag; int volatile flag; // เทียบเท่า volatile int* ptr; // Pointer to volatile int int* volatile ptr; //

  11. Singleton Pattern ใน C++: การสร้าง Class ที่มี Instance เดียว

    Singleton Pattern เป็น Design Pattern ที่จำกัดการสร้าง Instance ของ Class ให้มีเพียง หนึ่งเดียวตลอดชีวิตโปรแกรม ให้ Global Access Point ไปยัง Instance นั้น Classic Implementation (Meyers Singleton - C++11 Thread-Safe) #include <iostream> #include <memory> class Singleton { private:

  12. ความแตกต่างระหว่าง int และ const int& ใน C/C++

    ประเด็นนี้เกี่ยวกับ Type Qualifiers และ Reference Semantics ใน C++ int (Plain Integer) Value Type: เก็บค่าตรงๆ Pass by Value: Copy ค่า Mutable: เปลี่ยนค่าได้ const int& (Reference to Const Int) Reference Type: อ้างอิงไปยัง int Object ที่มีอยู่ Pass by Reference: ไม่ Copy, เข

  13. cin.ignore() ใน C++: ล้าง Input Buffer ป้องกันข้าม Input

    std::cin.ignore() ใช้สำหรับ ข้าม (Discard) ตัวอักษรใน Input Buffer ป้องกันปัญหา ข้าม Input ที่พบบ่อยเมื่อผสมใช้ operator>> (Formatted Input) กับ getline() (Unformatted Input) ปัญหา: ทำไม Input ถูกข้าม? ได้ Empty String ทันที! operator>> อ่าน Token แล้วหยุดที่ Whitespace (Space, Tab, N

  14. Variable Scoping ใน C: Static Scope (Lexical Scope)

    C ใช้ Static Scoping (Lexical Scoping) หมายความว่า Visibility ของ Variable ถูกกำหนดโดย ตำแหน่งใน Source Code (Textual Structure) ไม่ใช่ Runtime Call Stack (Dynamic Scoping) ตัวอย่าง: Static Scope ใช้ Global x, ไม่ใช่ Local x นี้! } int main() { printf(Value: %d\n, my_function2()); // Output:

  15. Redeclaration ของ Global Variable ใน C: ทำได้เมื่อไม่มี Initialization

    ใน C Language Global Variable (External Linkage) สามารถ Redeclare (ประกาศซ้ำ) ได้หลายครั้ง ตราบใดที่ มีเพียงครั้งเดียวที่มี Initialization (Definition) นี่คือ Tentative Definition Rule กฎ Tentative Definition int a; → Tentative Definition (Declaration + Implicit Zero Initialization) int a

  16. คุณสมบัติ volatile ใน C/C++: บอก Compiler อย่า Optimize ตัวแปรนี้

    volatile เป็น Type Qualifier บอก Compiler ว่า ค่าของตัวแปรอาจเปลี่ยนแปลงได้ทุกเมื่อ โดยกระบวนการภายนอกที่ Compiler ไม่รู้จัก** จึงต้องไม่ Optimize (Cache ใน Register, Reorder, Remove) การ Access ตัวแปรนี้ Syntax volatile int flag; int volatile flag; // เทียบเท่า volatile int* ptr; //

  17. Preprocessor ใน C/C++: #define, #include, Conditional Compilation

    Preprocessor (ตัวประมวลผลก่อนคอมไพล์) ทำงานก่อน Compilation จริงๆ จัดการ Directives เริ่มต้นด้วย `#` ไม่ใช่ C++ Statements (ไม่มี Semicolon) Directives หลัก 1. #include: รวม Header File #include <iostream> // System Header (Angle Brackets) #include my_header.h // User Header (Quotes)

  18. while(1) vs while(0) ใน C/C++: Infinite Loop และ Dead Code

    while(1) และ while(0) เป็น Idiom พื้นฐานใน C/C++ สำหรับ Loop Control แต่มีความหมายและการใช้งานต่างกันอย่างสิ้นเชิง while(1): Infinite Loop (Intentional) Condition เป็น Non-zero Constant → Always True ใช้สำหรับ Event Loop, Server Loop, Menu-Driven Programs ต้องมี Break Condition ภายใน B

  19. __func__ ใน C/C++: ดึงชื่อฟังก์ชันปัจจุบันสำหรับ Debug/Log

    __func__ เป็น Implicit Local Variable (ไม่ใช่ Macro) ที่ Compiler สร้างให้อัตโนมัติในแต่ละ Function เก็บชื่อฟังก์ชันเป็น String Literal (`static const char __func__[] = function_name;`) มาตรฐาน C99 / C++11 คุณสมบัติ Type: `static const char[]` (Array of Char) Scope: Local ใน Function เท่าน

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:53/301  20-คอมพิวเตอร์/Page Goto:1 47 48 49 50 51 52 53 54 55 56 57 58 59