0Pricing
C++ Academy · บทเรียน

ตัวแปรสมาชิกและเมธอด

ประกาศตัวแปรสมาชิก เขียนเมธอดสมาชิก และอ้างอิงเมธอดผ่านอินสแตนซ์

ตัวแปรสมาชิกและเมธอด เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

สมาชิกของคลาส

คลาสสามารถประกอบด้วย:

  • ตัวแปรสมาชิก (ข้อมูล ซึ่งบางครั้งเรียกว่าฟิลด์)
  • ฟังก์ชันสมาชิก (เมธอด)
  • ชนิดข้อมูลซ้อนภายใน (ชื่อแทนชนิดข้อมูล ค่าแจกแจง คลาส)
  • สมาชิกสถิต (ใช้ร่วมกันโดยอินสแตนซ์ทั้งหมด)

การประกาศตัวแปรสมาชิก

ประกาศตัวแปรเหล่านี้ในเนื้อหาคลาส ใช้ตัวเริ่มต้นค่าเริ่มต้นภายในคลาสของ C++11 เพื่อให้โค้ดเป็นระเบียบ

class Person {
    std::string name_ = "unknown";
    int age_ = 0;
public:
    // ...
};

หลักการตั้งชื่อ

หลักการทั่วไปสำหรับสมาชิกส่วนตัว:

  • ขีดล่างต่อท้าย: name_
  • นำหน้าด้วย m_: m_name
  • ชื่อทั่วไปที่มี this-> โดยปริยาย

เลือกแบบใดแบบหนึ่งและใช้ให้สม่ำเสมอ

การกำหนดเมธอดภายในคลาส

เมธอดสั้น ๆ สามารถกำหนดแบบอินไลน์ในเนื้อหาคลาสได้ และจะเป็นอินไลน์โดยปริยาย

class Counter {
    int n_ = 0;
public:
    void increment() { ++n_; }
    int value() const { return n_; }
};

การกำหนดเมธอดภายนอกคลาส

โดยปกติเมธอดที่ยาวกว่าจะกำหนดไว้นอกคลาส ซึ่งมักอยู่ในไฟล์ .cpp ใช้ตัวดำเนินการแก้ไขขอบเขต ::

// header
class Logger {
public:
    void log(const std::string& msg);
};

// implementation
void Logger::log(const std::string& msg) {
    std::cout << "[LOG] " << msg << "\n";
}

การเรียกเมธอด

ใช้ไวยากรณ์จุดกับออบเจ็กต์ และใช้ไวยากรณ์ลูกศรกับพอยน์เตอร์

Counter c;
c.increment();

Counter* p = &c;
p->increment();

เมธอด Const

เมธอดที่ไม่แก้ไขออบเจ็กต์ควรระบุเป็น const เมธอดเหล่านี้สามารถเรียกใช้กับอินสแตนซ์ const ได้

class Counter {
    int n_ = 0;
public:
    int value() const { return n_; }   // does not modify *this
};

สมาชิกสถิต

สมาชิกสถิติเป็นของคลาส ไม่ใช่ของอินสแตนซ์ ประกาศด้วย static และกำหนดไว้ในไฟล์ต้นฉบับ

class Logger {
public:
    static int messageCount;
    static void log(const std::string& msg);
};
int Logger::messageCount = 0;

ตัวระบุการเข้าถึง

ระดับการเข้าถึงสามระดับ:

  • public — เข้าถึงได้จากทุกที่
  • private — เข้าถึงได้เฉพาะภายในคลาส
  • protected — เข้าถึงได้ภายในคลาสและคลาสที่สืบทอด

การห่อหุ้มในการใช้งานจริง

ทำให้สมาชิกข้อมูลเป็นส่วนตัว แล้วเปิดให้เข้าถึงผ่านเมธอดที่บังคับใช้ invariant

class Temperature {
    double celsius_ = 0.0;
public:
    void setCelsius(double c);     // validates range
    double celsius() const { return celsius_; }
    double fahrenheit() const { return celsius_ * 9.0/5.0 + 32; }
};

เมธอดและฟังก์ชันอิสระ

ไม่จำเป็นต้องทำทุกอย่างให้เป็นเมธอด หากฟังก์ชันใช้เพียงอินเทอร์เฟซสาธารณะ ควรใช้ฟังก์ชันอิสระ เพราะจะลดการเชื่อมโยง

ตรวจสอบความเข้าใจ

คีย์เวิร์ดใดใช้ระบุว่าฟังก์ชันสมาชิกไม่แก้ไขออบเจ็กต์

สรุปทบทวน

ตัวแปรสมาชิกเก็บสถานะของแต่ละอินสแตนซ์ ส่วนเมธอดทำงานกับสถานะนั้น ให้ระบุเมธอดที่ไม่แก้ไขออบเจ็กต์เป็น const ทำให้ข้อมูลเป็นส่วนตัว และเปิดเผยพฤติกรรมผ่านอินเทอร์เฟซสาธารณะที่มีขนาดเล็กและตั้งใจออกแบบ

คำถามที่พบบ่อย

บทเรียน “ตัวแปรสมาชิกและเมธอด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวแปรสมาชิกและเมธอด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรสมาชิกและเมธอด”

ประกาศตัวแปรสมาชิก เขียนเมธอดสมาชิก และอ้างอิงเมธอดผ่านอินสแตนซ์ คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวแปรสมาชิกและเมธอด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. struct เทียบกับ class: ควรใช้แบบใด
  2. ตัวแปรสมาชิกและเมธอด
  3. คอนสตรักเตอร์และรายการเริ่มต้นสมาชิก
  4. พอยน์เตอร์ this และการห่อหุ้ม
← กลับไปที่ C++ Academy