Sự khác biệt giữa các thành viên riêng tư và được bảo vệ của các lớp C++ là gì

Su Khac Biet Giua Cac Thanh Vien Rieng Tu Va Duoc Bao Ve Cua Cac Lop C La Gi



C++ là ngôn ngữ lập trình hướng đối tượng (OOP) cung cấp cơ chế đóng gói dữ liệu và chức năng thành một thực thể duy nhất gọi là lớp. Một trong những tính năng thiết yếu của lớp là khả năng chỉ định cấp độ truy cập cho các thành viên của nó. Trong lập trình hướng đối tượng, thông số truy cập được sử dụng để kiểm soát khả năng hiển thị và khả năng truy cập của các trường và phương thức của một lớp. được bảo vệ , công cộng , Và riêng tư cấp độ truy cập là ba loại cấp độ truy cập cơ bản trong C++.

Trong bài viết này, chúng tôi sẽ thảo luận về sự khác biệt giữa hai chính truy cập specifier S, riêng tư được bảo vệ thành viên của một lớp C++.

Công cụ xác định quyền truy cập riêng tư

thành viên riêng tư được khai báo bằng từ khóa ‘ riêng tư ‘. Các công cụ xác định quyền truy cập riêng tư giới hạn quyền truy cập vào các thành viên của lớp đối với chỉ chính lớp đó. Mã bên ngoài lớp không thể truy cập hoặc thay đổi thành viên riêng. Điều đó có nghĩa là chỉ những phương thức được khai báo trong lớp mới có thể truy cập và hoạt động trên thành viên tư nhân , ngay cả các lớp dẫn xuất cũng không thể truy cập thành viên tư nhân . Một sử dụng phổ biến của thành viên tư nhân là để đảm bảo sự hoạt động chính xác của một lớp. thành viên riêng tư được sử dụng để đóng gói dữ liệu lớp và cung cấp mức độ trừu tượng cho người dùng của lớp.







#include
sử dụng không gian tên tiêu chuẩn ;

lớp học người chơi {

riêng tư :
tên chuỗi ;
int tuổi ;

công cộng :
khoảng trống getPlayer ( )
{
cout << 'Nhập tên: ' ;
Ăn >> tên ;
cout << 'Nhập tuổi:' ;
Ăn >> tuổi ;
}
khoảng trống showPlayer ( )
{
cout << 'Tên: ' << tên << kết thúc ;
cout << 'Tuổi: ' << tuổi << kết thúc ;
}
} ;

int chủ yếu ( )
{
người chơi làm ơn ;
làm ơn getPlayer ( ) ;
làm ơn showPlayer ( ) ;

trở lại 0 ;
}

Trong đoạn mã trên, chúng tôi sử dụng các phương thức thành viên công cộng getPlayer() showPlayer() để truy cập vào hai riêng tư các thành viên' tên tuổi . Các getPlayer() chức năng nhận đầu vào từ người dùng và hiển thị nó trên màn hình thông qua showPlayer() chức năng.



đầu ra







Công cụ xác định quyền truy cập được bảo vệ

Thành viên được bảo vệ của một lớp có thể được truy cập bởi cả lớp dẫn xuất và các hàm thành viên của chính lớp đó. Thành viên được bảo vệ được sử dụng để cung cấp một mức độ truy cập vào các lớp dẫn xuất mà không để lộ các chi tiết triển khai ra thế giới bên ngoài. Thành viên được bảo vệ được khai báo bằng từ khóa ‘ được bảo vệ ' và Đại tràng (:) tính cách. Thành viên được bảo vệ cho phép một lớp được mở rộng và sửa đổi mà không ảnh hưởng đến tính toàn vẹn của nó. Một lớp dẫn xuất có thể sử dụng thành viên được bảo vệ để tinh chỉnh hoặc tùy chỉnh hành vi của một lớp cơ sở.

Đây là một ví dụ về một lớp học với thành viên được bảo vệ :



#include
sử dụng không gian tên std;

người chơi đẳng cấp {
riêng tư:
tên chuỗi;
int tuổi;

được bảo vệ:
mục tiêu int;

công cộng:
khoảng trống getPlayer ( )
{
cout <> tên;
cout <> tuổi;
}
void showPlayer ( )
{
cout << 'Tên: ' << tên << kết thúc;
cout << 'Tuổi: ' << tuổi << kết thúc;
}
} ;

người chơi lớp1: người chơi công cộng {

riêng tư:
chuỗi nước;

công cộng:
làm mất hiệu lực set_goals ( int g )
{
mục tiêu = g;
}
vô hiệu getPlayer1 ( )
{
getPlayer ( ) ;
cout <> quốc gia;
}
void showPlayer1 ( )
{
cout << 'bàn thắng: ' << bàn thắng << kết thúc;
showPlayer ( ) ;
cout << 'Quốc gia: ' << quốc gia << kết thúc;
}
} ;

int chính ( )
{
người chơi1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

trở lại 0 ;
}

Các người chơi lớp gồm hai thành viên tư nhân , tên tuổi , một được bảo vệ thành viên, bàn thắng , Và riêng tư thành viên được sử dụng bên trong công cộng chức năng thành viên, getPlayer() showPlayer() . Có hai lớp, người chơi người chơi1 , cả hai đều là lớp cơ sở. Một riêng tư thành viên, quốc gia , và ba công cộng các phương thức thành viên tạo nên người chơi1 lớp học. Mục tiêu đề ra() được sử dụng để thay đổi thành viên được bảo vệ bàn thắng' giá trị. getPlayer1() gọi getPlayer() hàm thành viên của người chơi class trong khi truy xuất bổ sung đầu vào cho quốc gia. Tương tự như vậy, showPlayer1() gọi showPlayer() chức năng thành viên và in bàn thắng quốc gia các giá trị.

đầu ra

Sự khác biệt giữa các thành viên riêng tư và được bảo vệ của các lớp C++

Dưới đây là liệt kê một số khác biệt chính giữa Riêng tư được bảo vệ thành viên của các lớp C++.

1: Phạm vi và Chức năng

Khi xem xét việc sử dụng các chỉ định truy cập, điều quan trọng là phải suy nghĩ cẩn thận về phạm vi chức năng của chương trình. MỘT công cụ xác định quyền truy cập riêng tư cung cấp mức bảo mật cao nhất và tránh truy cập ngoài ý muốn vào các biến và phương thức. Mặt khác, một công cụ xác định quyền truy cập được bảo vệ cung cấp nhiều khả năng truy cập và tính linh hoạt hơn, điều này rất cần thiết khi lập kế hoạch kế thừa các lớp dẫn xuất từ ​​một lớp cơ sở.

2: Cấp độ truy cập

Sự khác biệt chính giữa riêng tư thành viên được bảo vệ là mức độ truy cập mà họ cung cấp. được bảo vệ các thành viên có thể được truy cập bởi cả các lớp dẫn xuất của lớp và các hàm thành viên, nhưng riêng tư các thành viên chỉ có thể được lấy bởi các hàm thành viên của lớp.

3: Đóng gói lớp

Một sự khác biệt quan trọng khác giữa riêng tư được bảo vệ thành viên là vai trò của họ trong việc duy trì sự đóng gói của lớp. Để cô lập dữ liệu và cung cấp cho người dùng của lớp một số mức độ trừu tượng, riêng tư thành viên được tuyển dụng. được bảo vệ các thành viên được sử dụng để quản lý cấu trúc thừa kế và cung cấp quyền truy cập cho các thành viên của lớp cơ sở bởi các lớp dẫn xuất.

Suy nghĩ cuối cùng

Riêng tư thành viên được bảo vệ là hai mức truy cập thiết yếu trong lớp C++. Các riêng tư công cụ xác định quyền truy cập làm cho tất cả người dùng bên ngoài không thể truy cập các thành viên lớp và nó được sử dụng để lưu giữ thông tin riêng tư trong lớp. Ngược lại, một được bảo vệ chỉ định truy cập chỉ cho phép các lớp dẫn xuất truy cập vào các thành viên của lớp, được sử dụng để cung cấp chức năng của lớp cơ sở và cho phép sửa đổi mà không thay đổi hành vi của lớp cơ sở. Mức truy cập của các thành viên lớp đóng một vai trò quan trọng trong việc duy trì sự đóng gói của lớp và cung cấp mức truy cập cho người dùng của lớp.