อะไรคือความแตกต่างระหว่างสมาชิกส่วนตัวและสมาชิกที่ได้รับการป้องกันของคลาส C ++

Xari Khux Khwam Taek Tang Rahwang Smachik Swn Taw Laea Smachik Thi Di Rab Kar Pxngkan Khxng Khlas C



C++ เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ (OOP) ที่มีกลไกในการสรุปข้อมูลและฟังก์ชันให้เป็นเอนทิตีเดียวที่เรียกว่าคลาส คุณสมบัติที่สำคัญอย่างหนึ่งของคลาสคือความสามารถในการระบุระดับการเข้าถึงสำหรับสมาชิก ในการเขียนโปรแกรมเชิงวัตถุ ตัวระบุการเข้าถึง ใช้เพื่อควบคุมการมองเห็นและการเข้าถึงฟิลด์และวิธีการของคลาส มีการป้องกัน , สาธารณะ , และ ส่วนตัว ระดับการเข้าถึงเป็นระดับการเข้าถึงพื้นฐานสามประเภทใน C ++

ในบทความนี้เราจะพูดถึงความแตกต่างระหว่างสองหลัก ตัวระบุการเข้าถึง เอส ส่วนตัว และ มีการป้องกัน สมาชิกของคลาส C++

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

สมาชิกส่วนตัว ถูกประกาศโดยใช้คำหลัก ‘ ส่วนตัว ‘. เดอะ ตัวระบุการเข้าถึงส่วนตัว จำกัดการเข้าถึงสมาชิกในชั้นเรียนไว้เฉพาะในชั้นเรียนเท่านั้น รหัสนอกชั้นเรียนไม่สามารถเข้าถึงหรือแก้ไขสมาชิกส่วนตัวได้ นั่นหมายความว่าเฉพาะเมธอดที่ประกาศในคลาสเท่านั้นที่สามารถเข้าถึงและดำเนินการบน สมาชิกส่วนตัว แม้แต่คลาสที่ได้รับมาก็ไม่สามารถเข้าถึงได้ สมาชิกส่วนตัว . การใช้งานทั่วไปของ สมาชิกส่วนตัว คือเพื่อให้แน่ใจว่าการดำเนินการของชั้นเรียนถูกต้อง สมาชิกส่วนตัว ใช้เพื่อสรุปข้อมูลคลาสและจัดเตรียมระดับนามธรรมให้กับผู้ใช้คลาส







#รวมถึง
โดยใช้ เนมสเปซ มาตรฐาน ;

ระดับ ผู้เล่น {

ส่วนตัว :
ชื่อสตริง ;
นานาชาติ อายุ ;

สาธารณะ :
เป็นโมฆะ รับผู้เล่น ( )
{
ศาล << 'ใส่ชื่อ: ' ;
การกิน >> ชื่อ ;
ศาล << 'ป้อนอายุ: ' ;
การกิน >> อายุ ;
}
เป็นโมฆะ โชว์เพลเยอร์ ( )
{
ศาล << 'ชื่อ: ' << ชื่อ << จบ ;
ศาล << 'อายุ: ' << อายุ << จบ ;
}
} ;

นานาชาติ หลัก ( )
{
เครื่องเล่น ;
กรุณา รับผู้เล่น ( ) ;
กรุณา โชว์เพลเยอร์ ( ) ;

กลับ 0 ;
}

ในรหัสด้านบน เราใช้วิธีการสมาชิกสาธารณะ รับผู้เล่น () และ โชว์เพลเยอร์() เพื่อเข้าถึงทั้งสอง ส่วนตัว สมาชิก' ชื่อ และ อายุ . เดอะ รับผู้เล่น () ฟังก์ชั่นรับอินพุตจากผู้ใช้และแสดงบนหน้าจอผ่าน โชว์เพลเยอร์() การทำงาน.



เอาต์พุต







ตัวระบุการเข้าถึงที่ได้รับการป้องกัน

สมาชิกที่ได้รับการคุ้มครอง ของคลาสสามารถเข้าถึงได้โดยทั้งคลาสที่ได้รับมาและฟังก์ชันสมาชิกของคลาสเอง สมาชิกที่ได้รับการคุ้มครอง ใช้เพื่อจัดเตรียมระดับการเข้าถึงคลาสที่ได้รับโดยไม่ต้องเปิดเผยรายละเอียดการใช้งานสู่โลกภายนอก สมาชิกที่ได้รับการคุ้มครอง มีการประกาศโดยใช้คำสำคัญว่า ‘ มีการป้องกัน ' และ โคลอน (:) อักขระ. สมาชิกที่ได้รับการคุ้มครอง อนุญาตให้ขยายและแก้ไขคลาสโดยไม่กระทบต่อความสมบูรณ์ของคลาส คลาสที่ได้รับสามารถใช้ สมาชิกที่ได้รับการคุ้มครอง เพื่อปรับแต่งหรือปรับแต่งพฤติกรรมของคลาสพื้นฐาน

นี่คือตัวอย่างของคลาสที่มี สมาชิกที่ได้รับการคุ้มครอง :



#รวมถึง
ใช้เนมสเปซ std;

ผู้เล่นระดับ {
ส่วนตัว:
ชื่อสตริง;
อายุ int;

มีการป้องกัน:
เป้าหมาย int;

สาธารณะ:
เป็นโมฆะ getPlayer ( )
{
ศาล <> ชื่อ;
ศาล <> อายุ;
}
เป็นโมฆะ showPlayer ( )
{
ศาล << 'ชื่อ: ' << ชื่อ << ท้าย;
ศาล << 'อายุ: ' << อายุ << ท้าย;
}
} ;

ผู้เล่นคลาส 1: ผู้เล่นสาธารณะ {

ส่วนตัว:
ประเทศสตริง

สาธารณะ:
ถือเป็นโมฆะ set_goals ( int กรัม )
{
เป้าหมาย = g;
}
เป็นโมฆะ getPlayer1 ( )
{
รับผู้เล่น ( ) ;
ศาล <> ประเทศ;
}
เป็นโมฆะ showPlayer1 ( )
{
ศาล << 'เป้าหมาย: ' << เป้าหมาย << ท้าย;
โชว์เพลเยอร์ ( ) ;
ศาล << 'ประเทศ: ' << ประเทศ << ท้าย;
}
} ;

int หลัก ( )
{
ผู้เล่น 1 คน;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

กลับ 0 ;
}

เดอะ ผู้เล่น ชั้นเรียนประกอบด้วยสอง สมาชิกส่วนตัว , ชื่อ และ อายุ , หนึ่ง มีการป้องกัน สมาชิก, เป้าหมาย , และ ส่วนตัว สมาชิกใช้ภายใน สาธารณะ ฟังก์ชั่นสมาชิก, รับผู้เล่น () และ โชว์เพลเยอร์() . มี 2 ​​คลาส คือ ผู้เล่น และ ผู้เล่น1 ซึ่งทั้งสองอย่างนี้เป็นคลาสพื้นฐาน หนึ่ง ส่วนตัว สมาชิก, ประเทศ และสาม สาธารณะ วิธีการสมาชิกทำขึ้น ผู้เล่น1 ระดับ. ตั้งเป้าหมาย() ใช้เพื่อเปลี่ยนสมาชิกที่ได้รับการป้องกัน เป้าหมาย' ค่า. getPlayer1() โทร รับผู้เล่น () ฟังก์ชั่นสมาชิกของ ผู้เล่น คลาสในขณะที่รับอินพุตเพิ่มเติมสำหรับประเทศ คล้ายกับสิ่งนี้ โชว์เพลเยอร์1() โทร โชว์เพลเยอร์() ฟังก์ชั่นสมาชิกและพิมพ์ เป้าหมาย และ ประเทศ ค่า

เอาต์พุต

ความแตกต่างระหว่างสมาชิกส่วนตัวและสมาชิกที่ได้รับการคุ้มครองของคลาส C++

นี่คือรายการความแตกต่างที่สำคัญบางประการระหว่าง ส่วนตัว และ มีการป้องกัน สมาชิกของคลาส C++

1: ขอบเขตและการทำงาน

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

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

ความแตกต่างหลักระหว่าง ส่วนตัว และ สมาชิกที่ได้รับการคุ้มครอง คือระดับการเข้าถึงที่พวกเขาให้ มีการป้องกัน สมาชิกสามารถเข้าถึงได้ทั้งคลาสที่ได้รับของคลาสและฟังก์ชั่นสมาชิก แต่ ส่วนตัว สามารถรับสมาชิกได้จากฟังก์ชั่นสมาชิกของชั้นเรียนเท่านั้น

3: การห่อหุ้มของคลาส

ความแตกต่างที่สำคัญอีกประการหนึ่งระหว่าง ส่วนตัว และ มีการป้องกัน สมาชิกคือบทบาทของพวกเขาในการรักษาสิ่งห่อหุ้มของชั้นเรียน เพื่อแยกข้อมูลและให้ระดับนามธรรมแก่ผู้ใช้ของคลาส ส่วนตัว มีการจ้างงานสมาชิก มีการป้องกัน สมาชิกถูกใช้เพื่อจัดการโครงสร้างการสืบทอดและให้การเข้าถึงสมาชิกคลาสพื้นฐานโดยคลาสที่ได้รับ

ความคิดสุดท้าย

ส่วนตัว และ สมาชิกที่ได้รับการคุ้มครอง เป็นระดับการเข้าถึงที่จำเป็นสองระดับในคลาส C ++ เดอะ ส่วนตัว ตัวระบุการเข้าถึงทำให้สมาชิกคลาสไม่สามารถเข้าถึงได้สำหรับผู้ใช้ภายนอกทั้งหมด และใช้เพื่อเก็บข้อมูล ส่วนตัว ภายในชั้นเรียน ในทางตรงกันข้าม ก มีการป้องกัน ตัวระบุการเข้าถึงอนุญาตให้เข้าถึงสมาชิกคลาสโดยคลาสที่ได้รับเท่านั้น ใช้เพื่อจัดเตรียมฟังก์ชันคลาสพื้นฐานและอนุญาตให้แก้ไขโดยไม่เปลี่ยนพฤติกรรมของคลาสพื้นฐาน ระดับการเข้าถึงของสมาชิกในชั้นเรียนมีบทบาทสำคัญในการรักษาการห่อหุ้มของชั้นเรียนและให้ระดับการเข้าถึงแก่ผู้ใช้ในชั้นเรียน