Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. วิธีเรียก Parent Class Function จาก Derived Class ใน C++

    ภาพรวม ใน C++ Derived Class สามารถเรียก Function ของ Parent (Base) Class ได้โดยใช้ Scope Resolution Operator :: ระบุชื่อ Base Class ตามด้วย :: และชื่อฟังก์ชัน Syntax BaseClassName::functionName(arguments); ตัวอย่างโค้ด #include <iostream> using namespace std; class Base { public: void

  2. ขนาดของ Object ของ Empty Class ใน C++

    ภาพรวม ใน C++ Empty Class (ไม่มี Non-Static Data Members) มีขนาดอย่างน้อย 1 Byte เพื่อให้ Object แต่ละตัวมี Address ที่ไม่ซ้ำกัน (Unique Address) ตามกฎของ C++ Standard ตัวอย่างโค้ด #include <iostream> using namespace std; class Empty {}; // Empty Class class NonEmpty { //

  3. เมื่อไหร่ควรใช้ Class หรือ Struct ใน C++

    ความแตกต่างระหว่าง Class และ Struct ใน C++ Structures และ classes คล้ายกันมากใน C++ แตกต่างเพียงเล็กน้อย รายละเอียดความแตกต่างช่วยตัดสินใจเมื่อไหร่ควรใช้แต่ละอย่าง ความแตกต่างหลัก Class: สมาชิกทุกตัวเป็น private โดยค่าเริ่มต้น Struct: สมาชิกทุกตัวเป็น public โดยค่าเริ่มต้น ตัวอย่าง Class #inclu

  4. อายุการใช้งานของตัวแปร static ในฟังก์ชัน C++

    อายุการใช้งานของตัวแปร static ในฟังก์ชัน ตัวแปร static ประกาศด้วยคีย์เวิร์ด static พื้นที่หน่วยความจำถูกจองเพียงครั้งเดียว และใช้ตลอดการทำงานของโปรแกรม เมื่อประกาศแล้ว ตัวแปรจะมีอยู่จนโปรแกรมสิ้นสุด ดังนั้นอายุการใช้งานของตัวแปร static เท่ากับอายุของโปรแกรม ตัวอย่างโปรแกรม #include <iostream&g

  5. วิธี Return Object จากฟังก์ชันใน C++

    ภาพรวม ใน C++ สามารถ Return Object จากฟังก์ชันได้หลายวิธี แต่ละวิธีมีข้อดี/ข้อเสียต่างกัน สมัยใหม่ (C++11+) ใช้ Return by Value ร่วมกับ Move Semantics และ NRVO (Named Return Value Optimization) เป็นหลัก วิธีต่างๆ ในการ Return Object 1. Return by Value (Modern C++ - แนะนำ) #include <iostream>

  6. ตัวอย่าง Polymorphism ใน C++ (Function Overloading)

    ภาพรวม Polymorphism (หลายรูปแบบ) เป็นคุณสมบัติหลักของ OOP แบ่งเป็น 2 ประเภทหลัก: Compile-time Polymorphism (Static Binding): Function Overloading, Operator Overloading, Templates Runtime Polymorphism (Dynamic Binding): Function Overriding (Virtual Functions) ตัวอย่าง: Function Overloading (Co

  7. การเข้าถึง Protected Members ใน Derived Class C++

    ภาพรวม Protected Members ใน C++ คล้าย Private Members ที่เข้าถึงจากภายนอกไม่ได้ แต่แตกต่างตรงที่ Derived Classes (คลาสลูก) เข้าถึงได้ ทำให้เหมาะสำหรับข้อมูล/ฟังก์ชันที่ Base Class ต้องการให้ลูกเข้าถึงแต่ไม่ให้ Public ตัวอย่างโค้ด #include <iostream> using namespace std; class Base { protecte

  8. Private และ Protected Members ใน C++

    ภาพรวม C++ มี Access Specifiers 3 ระดับ สำหรับควบคุมการเข้าถึง Class Members: Access SpecifierSame ClassDerived ClassOutside (Non-member)Friend public✅✅✅✅ protected✅✅❌✅ private✅❌❌✅ Default: Class = private, Struct = public รายละเอียด Private Members เข้าถึงได้เฉพาะในคลาสเดียวกัน (Me

  9. ความหมายของ Double Colon :: นำหน้าใน C++

    Double Colon (::) หรือ Scope Resolution Operator Double colon นำหน้าเรียกว่า Scope Resolution Operator มีการใช้งานหลักดังนี้ 1. กำหนดฟังก์ชันนอกคลาส ใช้กำหนดฟังก์ชันภายนอกคลาส ตัวอย่าง #include <iostream> using namespace std; class Example { int num; public: Example() { num = 10; }

  10. ฟังก์ชัน main() ใน C++ สามารถเรียกตัวเองได้หรือไม่? (Recursion)

    ภาพรวม ได้** ฟังก์ชัน main() ใน C++ สามารถเรียกตัวเองได้ (Recursion) แต่เป็นการปฏิบัติที่ ไม่แนะนำ (Discouraged) และบาง Compiler อาจห้ามหรือเตือน ตัวอย่างโค้ด #include <iostream> using namespace std; int main() { static int x = 1; // Static: คงค่าระหว่างการเรียกซ้ำ cout << x << ;

  11. การเรียก Class Method ผ่าน NULL Class Pointer ใน C++

    ภาพรวม คล้ายกับบทความก่อนหน้า การเรียก Member Function ผ่าน NULL Class Pointer ใน C++ เป็น Undefined Behavior (UB) แม้จะ ทำงานได้ บนบาง Compiler แต่เป็นการเขียนโค้ดที่ผิดและอันตราย ตัวอย่างโค้ด (แสดงพฤติกรรม - ไม่แนะนำ) #include <iostream> using namespace std; class Example { public: voi

  12. อัลกอริทึมหาจำนวนเฉพาะที่เร็วที่สุดใน C++: Sieve of Eratosthenes

    ภาพรวม Sieve of Eratosthenes (ถังเอราโทสเธนีส) เป็นอัลกอริทึมที่มีประสิทธิภาพสูงสุดสำหรับการหาจำนวนเฉพาะทั้งหมดที่น้อยกว่า n เมื่อ n < 10 ล้าน ประมาณ ความซับซ้อนด้านเวลา O(n log log n) เร็วกว่าการตรวจสอบแต่ละตัว O(n√n) มาก หลักการทำงาน สร้าง Boolean Array isPrime[0...n] เริ่มต้นทั้งหมด = true

  13. การเริ่มต้นอาเรย์ทั่วไปด้วยค่าเริ่มต้นเดียวใน C++

    การเริ่มต้นอาเรย์ด้วยค่าเริ่มต้น สามารถเริ่มต้นอาเรย์ทั้งหมดเป็นศูนย์ได้ง่ายๆ ดังนี้: int arr[10] = {0}; แต่ไม่สามารถเริ่มต้นอาเรย์ทั้งหมดเป็นค่าที่ไม่ใช่ศูนย์ด้วยวิธีนี้ได้: int arr[10] = {5}; ในตัวอย่างนี้ จะมีแค่ element แรกเป็น 5 ส่วนที่เหลือเป็น 0 สามารถใช้ for loop เริ่มต้นอาเรย์ด้วยค่าเดีย

  14. การเรียก Member Function ผ่าน NULL Object Pointer ใน C++

    ภาพรวม ใน C++ สามารถเรียก Member Function ผ่าน NULL Pointer ได้ แต่เป็น Undefined Behavior (UB) ผลลัพธ์ขึ้นอยู่กับ Compiler และ Optimization Level ไม่ควรทำใน Production Code ตัวอย่างโค้ด (แสดงพฤติกรรม - ไม่แนะนำให้ทำตาม) #include <iostream> using namespace std; class Demo { public: void

  15. Static C++ Class Members ถูก Initialize เมื่อไหร่?

    ภาพรวม Static Class Members ใน C++ มีกฎการ Initialize ที่เฉพาะเจาะจง: Static Data Members: ต้องมี Definition (นิยาม) ใน Global/namespace Scope พอดี 1 ครั้ง Initialization เกิดขึ้น ก่อน main() เริ่มต้น (Static Initialization Phase) ถ้าไม่ระบุ Initializer จะถูก Zero-initialize อัตโนมัติ Const

  16. เมื่อไหร่ควรใช้ new Operator ใน C++ และเมื่อไหร่ไม่ควรใช้

    ภาพรวม new Operator ใน C++ ใช้สำหรับ Dynamic Memory Allocation บน Heap คืนค่า Pointer ชี้ไปที่หน่วยความจำที่จองไว้ ต้องจับคู่กับ delete เพื่อปล่อยหน่วยความจำ Syntax // Single object Type* ptr = new Type; // Default initialize Type* ptr = new Type(); // Value initialize (zero) Typ

  17. วิธี Return Local Array จากฟังก์ชัน C++

    ภาพรวม ใน C++ ไม่สามารถ Return Local Array ได้โดยตรง เพราะ Local Array อยู่บน Stack จะถูกทำลายเมื่อฟังก์ชันจบ ทำให้ Pointer ที่ Return ไปชี้หน่วยความจำที่ไม่ถูกต้อง (Dangling Pointer) → Undefined Behavior วิธีแก้ไข (3 วิธีหลัก) 1. ใช้ Static Local Array (Simple แต่มีข้อจำกัด) #include <iostrea

  18. การ Initialize อาร์เรย์ด้วย Variable vs ค่าจริงใน C++

    ภาพรวม ใน C++ อาร์เรย์สามารถ Initialize ได้ทั้งด้วยตัวแปร (Variables) และค่าคงที่ (Literal Values) ทั้งสองวิธีทำงานเหมือนกัน เพราะค่าจะถูกคัดลอกเข้าไปในอาร์เรย์ ตัวอย่างโค้ด #include <iostream> using namespace std; int main() { int a = 5; int b = 3; int arr[4]; arr[0] =

  19. Static Member Variables ใน C++ และการ Initialize

    ภาพรวม Static Member Variables ใน C++ ถูกประกาศด้วยคีย์เวิร์ด static ภายในคลาส มีคุณสมบัติ: มีเพียง 1 ตัว ในหน่วยความจำ แชร์ร่วมกันทุกออบเจ็กต์ของคลาส ไม่ได้อยู่ภายในออบเจ็กต์ (Non-object member) ต้อง Define และ Initialize นอกคลาส (Definition) ใน Global Scope ถ้าไม่ Initialize จะได้ค่า 0 อั

  20. วิธีแปลง double เป็น string ใน C++

    ภาพรวม ใน C++ สามารถแปลง double เป็น std::string ได้ง่ายด้วยฟังก์ชัน std::to_string (ตั้งแต่ C++11) ซึ่งอยู่ใน Header <string> ตัวอย่างโค้ด #include <iostream> #include <string> using namespace std; int main() { double d = 238649.21316934; string s = to_string(d); cou

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:26/301  20-คอมพิวเตอร์/Page Goto:1 20 21 22 23 24 25 26 27 28 29 30 31 32