Struct và class khác nhau như thế nào?

Struct :

  • Struct là kiểu dữ liệu tham trị được lưu trong Stack.
  • Struct không hỗ trợ kế thừa
  • Khi struct được khởi tạo với từ khóa new, khi đó một constructor (hàm khởi tạo) được gọi để khởi tạo các trường trong cấu trúc.
  • Khi struct được khởi tạo không dùng từ khóa new thì không có constructor(hàm khởi tạo) được gọi, do vậy người dùng cần khởi tạo tất cả các trường trước khi sử dụng.
  • Struct phù hợp với các cấu trúc dữ liệu nhỏ
    Classs :
  • Class là kiểu dữ liệu tham chiếu được lưu trong heap.
  • class có hỗ trợ kế thừa.
  • class phù hợp với các cấu trúc dữ liệu phức tạp.

mong mọi người đính chính lại và bổ sung thêm !!! xin cám ơn

Mình hiểu thì struct chỉ chứa dữ liệu, class thì mở rộng hơn, ngoài chứa dữ liệu nó còn chứa các hàm xử lý các dữ liệu đó.

Struct với class ko phải được lưu ở stack hay là heap đâu, object của nó được lưu ở stack hoặc heap, phụ thuộc vào việc cấp phát của mình.
Struct cũng có kế thừa, đa hình, trừu tượng, rất giống class, chỉ khác ở phạm vi hoạt động mặc định của class là private còn struct thì là public.

1 Like

Viết tầm bậy mà cũng viết. Struct mà không cho kế thừa. Thử test coi có kế thừa không rồi hãy phát biều như đúng rồi.Gì mà struct lưu trong stack class trong heap.Học cho kỹ bva2 nhiều rồi hãy phát biểu nhé

Cũng nhiều cái viết vớ vẩn thật :neutral_face:

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