Hàm Get Set Trong C++

     
hjx em học trên lớp thầy nói mà em ko hiểu lắm về tác dụng của hàm nay, ai hiểu giải thích cho em với... tk nhìu ạh
*

*
*
Trả lời cùng với trích dẫn
*

Thành viên nhiệt tình
*

*

Thành viên tích cực
*

Theo mình nó có tác dụng truy cập vào các thuộc tính nhanh chóng mà không phải tạo các phương thức để lấy hay cài đặt các thuộc tính trong lớp mà vẫn đảm bảo yếu tố đóng gói dữ liệu trong OOP.

Bạn đang xem: Hàm get set trong c++


In EarnMoney class doesn"t have WorkShy method,but it has WorkingHard method!
*
http://vn.myblog.yahoo.com/hoangsan_762
theo mình set có nghĩa là lấy 1 giá trị còn get là đưa ra 1 giá trị, tức là set sẽ lấy 1 giá trị mà chúng ta khởi tạo còn get có nhiệm vụ return lại giá trị đóbạn tham khảo 1 vd của mình nha
còn mình thì nghĩ đơn giản như thế này: get và set giống như 1 tên quản kho, khi hàng về (dữ liệu) thì kiểm tra chất lượng rồi cho nhập hàng, còn khi hàng ra cũng phải kiểm tra trước khi mang ra dùng, có những quản kho chỉ cho nhập hàng ko cho lấy ra, còn có những tên chỉ cho lấy mà ko cho hàng vào. đơn giản mình nghĩ là vậy.
tạm thời thì qua ví dụ vẫn chưa hiểu rõ lắm vì khã năng đọc chương trình con` kém, nhưng mà có khá hơn chút ít rồi, thank mấy anh nhiều....

Xem thêm: Cách Xem Lại Ảnh Cũ Đã Chia Sẻ Trên Facebook Messenger, Cách Tìm Kiếm Bằng Hình Ảnh Trên Facebook


còn mình thì nghĩ đơn giản như thế này: get và set giống như 1 tên quản kho, khi hàng về (dữ liệu) thì kiểm tra chất lượng rồi cho nhập hàng, còn khi hàng ra cũng phải kiểm tra trước khi mang ra dùng, có những quản kho chỉ cho nhập hàng ko cho lấy ra, còn có những tên chỉ cho lấy mà ko cho hàng vào. đơn giản mình nghĩ là vậy.

Xem thêm: Những Bài Thơ 5 Chữ Về Môi Trường ), Thơ 5 Chữ Về Môi Trường


nhưng mà anh à cái này có tới 2 thằng(get và set) và nói như anh thì am hiểu là có 2 thủ kho, 1 dầu vào 1 đầu ra, get nhận vào, set trả raq ha, vậy theo anh khau kiểm định đó để làm gì,.... đó là điều em muốn thắc mắc đấy....
Học lập trình hướng đối tượng lâu rồi nên không nhớ rõ. Nhưng đại khái nó như thế này:Nếu bạn lập trình C++ hay Java thì để lấy giá trị hoặc gán giá trị cho một thuộc tính của một đối tượng đồng thời để không vi phạm tính đóng gói thì bạn phải xây dựng riêng một phương thức để truy xuất thuộc tính. Ví dụ như class concho ở trên với thuộc tính ten chẳng hạn ta phải viết 2 phương thức sau để truy xuất lấy giá trị hoặc gán giá trị:
//phuong thuc lay gia tripublic string getTen(){ return this.ten;}//phuong thuc gan gia tripublic string setTen(string name){ this.ten = name;}
//khai bao doi tuong con choconcho a = new concho();//dat tena.setTen("con cay");//lay tenstring nameConCho = a.getTen();
Với cách lập phương thức cụ thể như vậy chúng ta sẽ đóng gói các thuôc tính của môt class để cho chương trình viết ra được bảo mật cao hơn, và tất cả các class khác cho dù không là bạn bè hay lớp con thì cũng đều truy xuất được vào các thuộc tính của đối tượng con chó bằng cách sử dụng hàm getName() và setName mà chúng ta viết bởi vì nếu không có phương thức cụ thể chúng ta không thể lấy giá trị của lớp đó từ một lớp khác theo kiểu:
//gia su day dang o mot lop khac string tenConCho = a.ten; string nameDog="john"; a.ten = nameDog; //ca 2 lenh tren deu sinh loi khi bien dich
Đó là đối với C++ và Java còn với C# thì khác biệt (có lẽ vì nó ra đời sau) bạn không cần mất công xây dựng cho mỗi thuộc tính 2 phương thức get và set khác nhau để truy xuất. C# cung cấp sẵn cho chúng ta cái cách thức
public string Ten { get //tra lai gia tri(duoi ham main khai bao la "Ki") { return ten; //dua thong tin ra ngoai man hinh } set //lay gia tri(duoi ham main khai bao la "Ki") { ten = value; //vaule se lay gia tri ma ham main khai("Ki") } }