Hỏi về tính bao gói: có nên dùng hàm set, get cho các thuộc tính kiểu container không?

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 gói hay bao gói @@

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

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

1 Like

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

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;

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ì.

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

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]
}

ừ 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

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. :smiley:

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.

1 Like

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?