Khái niệm setters and getters trong C ++ là một chức năng nâng cao để truy cập dữ liệu bị hạn chế. Để biết cách sử dụng nó đúng cách trong các chương trình của bạn, hãy đọc tại đây.

Bạn đang xem : getter và setter là gì trong c ++

Cách tạo hàm setter Trong C ++ getters và setters , một” setter “hoặc” phương thức setter “là một phương thức có mục đích chính là để ghi hoặc thay đổi trường lớp . Mặt khác, “getter” hoặc “getter method” là một phương thức có mục đích duy nhất là trả về dữ liệu hiện tại của một trường lớp. Để tìm hiểu thêm về khái niệm getters và setters trong C ++, hãy đọc bài viết này cho đến hết.

Getters và Setters trong C ++

Bạn có thể tự hỏi: getters và setters trong C ++ là gì? Hàm getter và setter là một khái niệm C ++ cấp độ nâng cao , được gọi là lập trình hướng đối tượng.

Trong C ++, đóng gói là quá trình trong đó một số thông tin quan trọng được giữ kín và các thành viên khác không thể đánh giá được, điều này khiến bạn không thể thay đổi giá trị từ ngoài lớp. Vì vậy, chúng tôi cần một loại hàm đặc biệt để truy xuất những dữ liệu đó và đặt giá trị.

Lập trình hướng đối tượng cung cấp các hàm getter và setter để đáp ứng các giá trị truy xuất và cài đặt của chúng tôi. Các chức năng getter và setter cho phép truy cập vào dữ liệu cá nhân ở chế độ an toàn. Vì hàm setter, C ++ được sử dụng cùng với việc xác thực dữ liệu và kiểm tra xem người dùng có nhập giá trị hợp lệ hay không.

Trong một số trường hợp, bạn không thể sử dụng các hàm getter và setter. Nếu bạn truy xuất một hàm thành viên nhưng không thể đặt giá trị, thì nó ở chế độ chỉ đọc. Hàm getter còn được gọi là “bộ truy cập”, trong khi hàm setter được gọi là hàm “mutator”.

Cách tạo một hàm Setter

Khách hàng có thể sửa đổi giá trị được lưu trữ trong một trong các biến thành viên của đối tượng bằng cách sử dụng hàm mutator / setter. Kiểm tra xác thực hoặc định dạng lại dữ liệu thành một định dạng được chỉ định là ví dụ về các hàm setter . Bây giờ bạn đã biết những hàm setter nào và lý do chúng ta sử dụng chúng, đã đến lúc tìm hiểu cách chúng ta có thể tạo một hàm setter!

Ở đây, chúng tôi đã cung cấp cho bạn các bước đơn giản để tạo một hàm setter:

– Mã nguồn:

#include & lt; iostream & gt;
#include & lt; trình lặp & gt;
#include & lt; set & gt;
sử dụng không gian tên std;
int main ()
{
đặt & lt; int, lớn hơn & lt; int & gt; & gt; s1;
s1.insert (50);
s1.insert (40);
s1.insert (30);
s1.insert (20);
s1.insert (10);
s1.insert (60);
s1.insert (70);
đặt & lt; int, lớn hơn & lt; int & gt; & gt; :: trình lặp itr;
cout & lt; & lt; “NBộ s1 là: n”;
for (itr = s1.begin (); itr! = s1.end (); itr ++)
{
cout & lt; & lt; * itr & lt; & lt; ” “;
}
cout & lt; & lt; endl;
đặt & lt; int & gt; s2 (s1.begin (), s1.end ());
cout & lt; & lt; “N Tập s2 sau khi gán từ s1 là: n”;
for (itr = s2.begin (); itr! = s2.end (); itr ++)
{
cout & lt; & lt; * itr & lt; & lt; ” “;
}
cout & lt; & lt; endl;
cout
& lt; & lt; “Ns2 sau khi loại bỏ các phần tử nhỏ hơn 30: n”;
s2.erase (s2.begin (), s2.find (30));
for (itr = s2.begin (); itr! = s2.end (); itr ++) {
cout & lt; & lt; * itr & lt; & lt; ” “;
}
int num;
num = s2.erase (50);
cout & lt; & lt; “Ns2.erase (50):“;
cout & lt; & lt; num & lt; & lt; “Removen”;
for (itr = s2.begin (); itr! = s2.end (); itr ++)
{
cout & lt; & lt; * itr & lt; & lt; ” “;
}
cout & lt; & lt; endl;
cout & lt; & lt; “S1.lower_bound (40): n”
& lt; & lt; * s1.lower_bound (40)
& lt; & lt; endl;
cout & lt; & lt; “S1.upper_bound (40): n”
& lt; & lt; * s1.upper_bound (40)
& lt; & lt; endl;
cout & lt; & lt; “S2.lower_bound (40): n”
& lt; & lt; * s2.lower_bound (40)
& lt; & lt; endl;
cout & lt; & lt; “S2.upper_bound (40): n”
& lt; & lt; * s2.upper_bound (40)
& lt; & lt; endl;
trả về 0;
}

Xem Thêm  HTML tr Tag - Tìm hiểu HTML - tr có nghĩa là gì trong mã html

– Đầu ra:

Tập hợp s1 là:

70 60 50 40 30 20 10

Tập hợp s2 sau khi gán từ s1 là:

10 20 30 40 50 60 70

s2 sau khi loại bỏ các phần tử dưới 30:

30 40 50 60 70

s2.erase (50): 1 bị xóa

30 40 60 70

s1.lower_bound (40):
40

s1.upper_bound (40):
30

s2.lower_bound (40):
40

s2.upper_bound (40):
60

Làm thế nào để tạo một hàm Getter?

Chúng tôi có thể sử dụng các phương thức setter để gán giá trị cho một biến (thao tác ghi). Tuy nhiên, chúng tôi sẽ không thể nhận được giá trị (thao tác đọc) trừ khi chúng tôi xác định một phương thức getter đi kèm với nó. Chúng ta sử dụng hàm getter để lấy giá trị từ lớp private. Đây là chương trình mẫu để áp dụng hàm getter trong chương trình:

– Mã nguồn:

#include & lt; iostream & gt;
sử dụng không gian tên std;
Hạng mục {
riêng tư:
giá int;
công khai:
Mục (int p) {
giá = p;
}
int getPrice () {
giá trả lại;
}
};
int main () {
Túi đựng đồ (30);
cout & lt; & lt; “Giá là $” & lt; & lt; bag.getPrice ();
trả về 0;
}

– Đầu ra:

giá là $ 30

– Giải thích

Trong ví dụ trên, chúng tôi đã tạo một lớp có tên là “item” trong đó giá được giữ trong lớp riêng tư, có nghĩa là nó bị hạn chế quyền truy cập. Để truy cập biến, chúng tôi đã sử dụng hàm get trong tầng lớp công cộng. Trong bước cuối cùng, chúng tôi đã tạo một đối tượng và gọi hàm get với tham chiếu của đối tượng.

Ví dụ về C ++ Getter và Setter

Bây giờ, chúng ta hãy xem ví dụ trong đó chúng ta sử dụng cả hàm getter và setter cùng nhau. Để hiểu rõ khái niệm của bạn, hãy xem ví dụ sau và các chương trình liên quan đến thực hành:

– Mã nguồn:

#include & lt; iostream & gt;
sử dụng không gian tên std;
nhân viên của lớp {
riêng tư:
int lương;
công khai:
void setSalary (int s) {
lương = s;
}
int getSalary () {
trả lại tiền lương;
}
};
int main () {
Nhân viên myObj;
myObj.setSalary (90000);
cout & lt; & lt; myObj.getSalary ();
trả về 0;
}

– Đầu ra:

90000

– Giải thích

Trong ví dụ trên, lương thuộc hạng tư nhân, bị hạn chế quyền truy cập. Để cập nhật biến lương, chúng tôi đã sử dụng hàm set và gán một tham số cho biến đó trong lớp công khai. Sau đó, chúng ta sử dụng hàm get để truy cập vào mức lương. Trong bước cuối cùng, chúng ta sẽ tạo một đối tượng và gọi hàm get và set với tham chiếu của đối tượng.

Ưu điểm của Hàm Getter và Setter trong C ++

Các nhà thiết kế lớp không có nghĩa vụ phải cung cấp trình truy cập và trình đột biến cho tất cả các thuộc tính, tuy nhiên, thay vào đó, họ sẽ chọn các thuộc tính để hiển thị và ẩn.

Xem Thêm  Cách đặt màu nền bằng HTML và CSS - thêm màu nền vào html

Ngoài ra, người thiết kế lớp còn duy trì toàn quyền kiểm soát hướng của luồng thông tin với người tiêu dùng. Các nhà thiết kế có thể cho phép người tiêu dùng kiểm tra giá trị của thuộc tính (bằng cách cung cấp công cụ truy cập) nhưng không sửa đổi giá trị (bằng cách không cung cấp công cụ đột biến). Thay vào đó, nhà thiết kế có thể cho phép khách hàng thay đổi giá trị thuộc tính nhưng không thấy giá trị hiện tại.

Hàm truy cập / hàm nhận sẽ giữ cho tính năng đóng gói mạnh mẽ hoặc cho phép truy cập thuộc tính gián tiếp. Nếu trình truy cập / getter đến một bản sao của thông tin (điển hình là do C ++ triển khai trả về theo giá vì mặc định), người tiêu dùng không thể thay đổi giá thuộc tính do đóng gói bảo vệ.

Tuy nhiên, nếu các phần tử đột biến trả về một con trỏ hoặc một tham chiếu, thì người tiêu dùng có thể thay đổi giá trị thuộc tính, làm suy yếu khả năng đóng gói.

Một “setter” hoặc “phương pháp setter” là một phương thức được sử dụng để ghi vào hoặc thay đổi một lớp. Tuy nhiên, chúng sẽ thực hiện xác thực, định dạng và chuyển đổi dữ liệu có thể chấp nhận được.

Ví dụ: các trình đột biến có đối số chuỗi mà nó sử dụng để đặt thuộc tính ngày sinh vào dòng sẽ xác minh rằng dữ liệu là hợp lệ – từ chối “Ngày 31 tháng 2”. Nếu mục lưu trữ dữ liệu ở định dạng rất bình thường như “1960/12/25” nhưng người dùng nhập ngày là “25 tháng 12 năm 1960”, trình cài đặt sẽ định dạng lại ngày để phù hợp với chất lượng trước khi lưu trữ mục. < / p>

Ngay cả khi việc triển khai cơ bản của lớp thay đổi, trình truy cập và trình đột biến vẫn cung cấp giao diện ổn định . Ví dụ, hãy nghĩ về một lớp ngăn xếp được triển khai dưới dạng một mảng có con trỏ ngăn xếp. Nếu con trỏ ngăn xếp được khởi tạo bằng 0, được tăng lên sau mỗi hoạt động đẩy và giảm xuống trước mỗi hoạt động bật lên, thì con trỏ ngăn xếp cũng chính là tỷ lệ của ngăn xếp.

Một chương trình khách hàng có thể phải hiểu kích thước của ngăn xếp; tuy nhiên, việc tạo công khai con trỏ ngăn xếp có nguy cơ làm hỏng ngăn xếp nếu máy khách thay đổi giá trị của con trỏ ngăn xếp.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về khái niệm getters và setters trong C ++ . Bạn đã biết hàm get và set trong C ++ là gì, cách tạo hàm getter và setter, những ưu điểm của hàm getter và setter cũng như hướng dẫn chuyên gia để tìm hiểu về khái niệm getter và các hàm setter trong C ++. Đây là bản tóm tắt nhanh của bài viết trên:

  • Các hàm getter và setter trong c Setter” hoặc “setter method” là một phương thức có mục đích chính là ghi vào hoặc thay đổi trường lớp.
  • Mặt khác, “getter” hoặc “getter method” là một phương thức có mục đích duy nhất là trả về dữ liệu hiện tại của một trường lớp.
  • Các chức năng getter và setter cho phép truy cập vào dữ liệu cá nhân ở chế độ an toàn.
  • Hàm getter còn được gọi là trình truy cập trong khi hàm setter trong C ++ được gọi là hàm đột biến.
  • Các hàm truy cập / get sẽ duy trì tính đóng gói chắc chắn hoặc cho phép tính toán sửa đổi thuộc tính gián tiếp về cách chúng trả về thuộc tính.
Xem Thêm  UPDATE - select top trong mysql

Khái niệm getters và setters trong C ++ là cách chuyên nghiệp để truy cập dữ liệu từ một trình xác định riêng tư . Trong khái niệm đóng gói, chúng tôi ẩn dữ liệu khỏi người dùng và để sửa đổi dữ liệu đó, chúng tôi sử dụng một hàm của set và get C ++. Với một số thực hành, bạn sẽ có thể hoàn thành nó nhanh chóng!

5/5 – (19 phiếu bầu)


Xem thêm những thông tin liên quan đến chủ đề getter và setter trong c ++ là gì

Getters & Setters | C# | Tutorial 28

alt

  • Tác giả: Mike Dane
  • Ngày đăng: 2017-11-08
  • Đánh giá: 4 ⭐ ( 5665 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giraffe Academy is rebranding! I’ve decided to re-focus the brand of this channel to highlight myself as a developer and teacher! The newly minted Mike Dane channel will have all the same content, with more to come in the future!

    Source Code – http://www.mikedane.com/programming-languages/csharp/

    This video is one in a series of videos where we’ll be looking at programming in C. The course is designed for new programmers, and will introduce common programming topics using the C language.

    Throughout the course we’ll be looking at various topics including variables, arrays, getting user input, loops, conditionals, object orientation and much more.

    If you’re enjoying Giraffe Academy and want to invest in our future, consider leaving a contribution
    http://www.mikedane.com/contribute

    Links:
    Website – http://www.mikedane.com/
    Facebook – https://www.facebook.com/giraffeacademy/
    Twitter – https://twitter.com/GiraffeAcademy

Java Bài 27: Phương Thức Getter Và Setter

  • Tác giả: yellowcodebooks.com
  • Đánh giá: 4 ⭐ ( 9527 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Getter và setter trong Java. Getter và setter là gì? Xây dựng getter và setter như thế nào? Getter và setter có quan trọng như thế nào trong ứng dụng?

Tại sao phải sử dụng getter, setter?

  • Tác giả: shareprogramming.net
  • Đánh giá: 4 ⭐ ( 9861 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Như vậy thuộc tính number của chúng ta giờ đây đã là private nên bắt buộc chúng ta phải cung cấp một hàm getter để cho phép bên ngoài lấy giá trị number từ instance ra.

Học C ++: Getters và Setters trong Định nghĩa Lớp

  • Tác giả: ichi.pro
  • Đánh giá: 4 ⭐ ( 7852 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một trong những lợi thế của việc sử dụng các lớp cho các đối tượng trong C ++ là bạn có thể ẩn các biến thành viên bằng cách đặt quyền truy cập của chúng ở chế độ riêng tư. Tuy nhiên, làm như vậy sẽ không thể truy cập các biến đó hoặc thay đổi giá trị của chúng từ bên ngoài định nghĩa lớp.

Getters và setters hoạt động như thế nào?

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 9905 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Hướng dẫn không thực sự cần thiết cho việc này. Đọc về cách đóng gói private…

Getters và Setters trong Javascript – Bạn đã thực sự hiểu về nó?

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 7380 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Getters và Setters là các hàm hoặc phương thức được sử dụng để lấy và đặt các giá trị của các biến. Khái niệm getters và setters rất phổ biến trong lập trình. Hầu như tất cả các ngôn ngữ lập trình cấp…

Getter và Setter trong JavaScript

  • Tác giả: blog.codegym.vn
  • Đánh giá: 5 ⭐ ( 8911 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php