Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

สิ่งที่ถูกสืบทอดจากคลาสแม่ใน C++

ในการเขียนโปรแกรมเชิงวัตถุ เราสามารถสืบทอดลักษณะเฉพาะของคลาสแม่ (Base Class) ไปยังคลาสลูก (Derived Class) ได้ คลาสลูกสามารถสืบทอดสมาชิกข้อมูล (Data Members) และฟังก์ชันสมาชิก (Member Functions) ของคลาสแม่

การเข้าถึงสมาชิกขึ้นอยู่กับระดับการเข้าถึง (Access Specifier):

  • public − เข้าถึงได้จากคลาสลูก คลาสเดียวกัน และภายนอกคลาส
  • protected − เข้าถึงได้จากคลาสลูกและคลาสเดียวกันเท่านั้น
  • private − เข้าถึงได้จากคลาสเดียวกันอย่างเดียว

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

class Base {
public:
    int a;
protected:
    int b;
private:
    int c;
};

class Derived : public Base {
public:
    int x;
};

int main() {
    Derived d;
    d.a = 10;
    d.x = 20;
    cout << "Derived class data member value : " << d.x << endl;
    cout << "Base class data member value : " << d.a << endl;
    return 0;
}

ผลลัพธ์

Derived class data member value : 20
Base class data member value : 10

ในโปรแกรมนี้ คลาสลูกสืบทอดคลาสแม่และสมาชิกข้อมูล สร้างออบเจกต์ d ของคลาสลูกเพื่อเข้าถึงสมาชิก a และ x แต่ไม่สามารถเข้าถึง b (protected) และ c (private) ได้ จะเกิดข้อผิดพลาดหากพยายามเข้าถึง