30/09/2018, 23:36

Các bạn cho mình chút ý kiến về Tính bao gói trong C++?

Liệu có nên dùng hàm set, get cho các thuộc tính kiểu array hay container như vector không, hay chỉ nên dùng trực tiếp luôn?

Người bí ẩn viết 01:52 ngày 01/10/2018

Đóng gói hay bao gói @@

Ngô Doãn Tuấn viết 01:45 ngày 01/10/2018

Liệu có nên dùng hàm set, get cho các thuộc tính kiểu array hay container như vector không

Dùng nó là một chuyện bình thường mà bạn !

Module Đk viết 01:37 ngày 01/10/2018

đóng gói, bao gói mình nghĩ đều hiểu được.

Người bí ẩn viết 01:51 ngày 01/10/2018

Mai mốt bọc gói luôn cho đủ bộ

Module Đk viết 01:50 ngày 01/10/2018

Nhưng ý mình là việc dùng nó nó container và array cơ mình thấy nó hơi lạ:
ví dụ hàm get cho 1 mảng chẳng hạn.
private:
int arr[50];
int* getArray() {
return this->arr;
}

khi dùng nó: getArray()[0] = 10;

Hay là dùng luôn arr[0] = 10;

Module Đk viết 01:43 ngày 01/10/2018

lên google dịch encapsulation có cả nghĩa bao gói nhé, cần thì add luôn bọc gói hì hì.

Module Đk viết 01:45 ngày 01/10/2018

Bạn cho ý kiến vào topic đi

*grab popcorn* viết 01:45 ngày 01/10/2018

Sao bạn ko viết hàm get trực tiếp luôn

int getArray(int index) {
 if(index > 49) {
   print("Quá giới hạn");
   return 0;
  } else return arr[index]
}
Module Đk viết 01:38 ngày 01/10/2018

ừ mình cũng đã từng làm vậy nhưng đang thắc mắc hay là gán trực tiếp luôn cho đỡ phiền

*grab popcorn* viết 01:40 ngày 01/10/2018

Tại vì chương trình bạn nhỏ, thì xài trực tiếp vài cái chắc chả vấn đề gì.
Nhưng giả dụ chương trình bạn có 10 chỗ get như trên. Ở mỗi chỗ bạn code ra 1 nùi như vậy thì lỡ như phát hiện sai 1 chỗ -> Phải sửa lại 10 chỗ.
Rồi chưa kể code nh quá bị quáng, thế là 1 trong 10 chỗ trên bị sai -> Rất khó tìm lỗi.

Vậy nên đóng gói nó lại thành 1 làm getter, setter như vậy thì có sai cũng biết là sai chỗ nào để sửa vì có 1 hàm thôi. Chưa kể không cần viết lại code nh nữa.

Module Đk viết 01:47 ngày 01/10/2018

ừm, bạn nói cũng có lý.
Thanks.

Bài liên quan
0