Logo vi.removalsclassifieds.com

Sự khác biệt giữa lớp và cấu trúc (Với bảng)

Mục lục:

Anonim

Câu hỏi về việc sử dụng một lớp hay một cấu trúc là điều phổ biến đối với các lập trình viên C ++ khi thiết kế mã. Trong số các nhà phát triển trẻ tuổi nhất, có một đám mây quan niệm sai lầm về sự khác biệt giữa lớp và cấu trúc về mặt kỹ thuật. Ngay cả sau khi hiểu sự khác biệt, các nhà phát triển đôi khi không đồng ý về mã phù hợp hơn.

Trong.NET, nói chung có hai loại kiểu, lớp là kiểu tham chiếu và struct là kiểu giá trị. Loại tham chiếu chủ yếu tồn tại trên heap, trong khi một loại giá trị nằm trong dòng. Một số khác biệt khác có thể được làm rõ bởi bài viết này.

Class vs Struct

Sự khác biệt chính giữa lớp và cấu trúc là lớp là kiểu tham chiếu được cấp phát trên heap cũng như bộ sưu tập rác. Mặt khác, struct là một kiểu giá trị được phân bổ trên nội tuyến hoặc ngăn xếp trong các kiểu chứa.

Một lớp có trong C ++ khá giống với cấu trúc C. Nó bao gồm một danh sách các thành viên dữ liệu và các hoạt động được thiết lập thường được thực hiện trên lớp. Có thể nói, trong lập trình hướng đối tượng, một lớp là khối xây dựng. Lớp cũng tương tự như bản thiết kế của một đối tượng.

Một cấu trúc là một kiểu dữ liệu kiểu giá trị. Nó giúp tạo một biến duy nhất giữ dữ liệu được liên kết của một số loại. Trong khi tạo cấu trúc, từ khóa “struct” được sử dụng. Khi một đối tượng struct được tạo bằng toán tử new, thì phương thức khởi tạo thích hợp sẽ được gọi và nó sẽ được tạo.

Bảng so sánh giữa lớp và cấu trúc

Các thông số so sánh Lớp học Cấu trúc
Chế độ hiển thị mặc định Riêng tư Công cộng
Kích thước khi trống 1 Byte 0 byte
Khởi tạo biến thành viên Cho phép Không cho phép
Thu gom rác thải Có thể xảy ra vì nó sử dụng chuyển qua tham chiếu Không thể thực hiện được vì nó sử dụng giá trị vượt qua
Khả năng sử dụng lại Hoàn toàn Không

Class là gì?

Trong lập trình C ++, một lớp là một cấu trúc dữ liệu hoặc kiểu do người dùng định nghĩa có các chức năng và dữ liệu là thành viên của nó. Quyền truy cập mặc định là riêng tư đối với các thành viên lớp C ++. Các thành viên private không thể truy cập bên ngoài lớp và chỉ có thể được truy cập thông qua các phương thức của lớp. Cho phép kế thừa trong lớp vì chức năng của nó có thể được kế thừa bởi các lớp con của nó

Các cá thể kiểu dữ liệu lớp được gọi là các đối tượng. Nó có thể chứa các hàm thành viên, các toán tử nạp chồng và các hằng biến do người lập trình xác định. Với sự trợ giúp của các mẫu lớp, khai báo lớp có thể được tạo. Các mẫu lớp này đại diện cho một họ lớp.

Khai báo của một lớp thực tế có được bằng cách khởi tạo mẫu với một hoặc nhiều đối số của mẫu. Chuyên môn hóa mẫu được định nghĩa là sự khởi tạo của một mẫu với một tập hợp các đối số cụ thể. Cú pháp C ++ cố gắng làm cho cấu trúc mọi khía cạnh trông giống như cấu trúc của các kiểu dữ liệu cơ bản.

Các lớp của C ++ có các thành viên của chúng. Các thành viên của các lớp được khai báo là có thể truy cập riêng tư hoặc công khai bởi các trình xác định tương ứng. Sau mã xác định, nếu bất kỳ thành viên nào gặp phải sẽ có quyền truy cập liên quan trừ khi gặp phải bộ xác định khác.

Struct là gì?

Trong một từ, cấu trúc thường là viết tắt của một bó. Nó là một số yếu tố liên quan được yêu cầu gắn với nhau trong một ngữ cảnh theo một cách nhất định. Loại ngữ cảnh này có thể truyền một số bị giới hạn đối số cho một hàm.

Về mặt ngôn ngữ lập trình C, nó là một khai báo kiểu dữ liệu hỗn hợp. Nó thường định nghĩa một danh sách nhóm biến vật lý dưới một tên trong khối bộ nhớ. Nó cho phép các biến khác nhau được truy cập thông qua một điểm duy nhất hoặc thông qua tên khai báo struct trả về địa chỉ giống nhau.

Cấu trúc có thể chứa các kiểu dữ liệu khác để được sử dụng cho các bản ghi có kiểu dữ liệu hỗn hợp hoặc các kiểu hỗn hợp khác. Trong C, nó tham chiếu đến khối liền kề của bộ nhớ vật lý, thường được phân định bằng ranh giới của độ dài từ. Kết quả là, mỗi trường nằm ở một độ lệch cố định nhất định ngay từ đầu.

Khi nói đến ngôn ngữ C ++, một cấu trúc tương tự như một lớp C ++ nhưng khả năng hiển thị mặc định khá khác biệt. Nó có thể được cấp phát động hoặc được cấp phát tĩnh hoặc trên heap hoặc ngăn xếp với một con trỏ rõ ràng. Khả năng hiển thị mặc định của struct trong C ++ là riêng tư.

Sự khác biệt chính giữa Class và Struct

Sự kết luận

Có thể kết luận rằng cả lớp và cấu trúc đều phổ biến đối với các lập trình viên C ++. Lớp là kiểu tham chiếu được cấp phát trên heap cũng như bộ thu gom rác. Mặt khác, cấu trúc là một kiểu giá trị được phân bổ trên dòng nội tuyến hoặc ngăn xếp trong các loại chứa.

Khi nói đến khả năng hiển thị, chế độ hiển thị mặc định là riêng tư trong lớp, trong khi chế độ hiển thị công khai trong một cấu trúc. Có thể thu gom rác trong lớp vì nó sử dụng tham chiếu truyền. Mặt khác, trong struct, không thể thu gom rác vì nó sử dụng giá trị truyền. Kích thước của lớp là 1 byte khi nó trống, trong khi được đánh dấu, nó là 0 byte.

Người giới thiệu

Sự khác biệt giữa lớp và cấu trúc (Với bảng)