Ý tưởng của cấu trúc là nhóm một tập hợp các biến vào một thùng chứa. Ví dụ: nếu bạn có ba tọa độ
int x;
int y;
int z;
bạn có thể muốn xem chúng như một đơn vị dữ liệu và nhóm chúng lại với nhau:
struct point
{
int x;
int y;
int z;
};
Bạn có thể xem đây là một cách để mô đun hóa dữ liệu của bạn. Bây giờ bạn có thể xác định các biến chứa cả ba giá trị trong một đơn vị:
struct point p1, p2;
Trong lập trình thủ tục, bạn có các thủ tục hoặc hàm thao tác dữ liệu và đặc biệt là các cấu trúc, vd
void shiftX(struct point *p, int offset);
Bạn có thể gọi hàm trên một cấu trúc bằng cách chuyển nó dưới dạng đối số:
shiftX(&p1, -10);
Bước từ cấu trúc đến các lớp là để nói rằng các thủ tục / hàm nên được nhóm cùng với dữ liệu thành các đơn vị: như cấu trúc phân loại các thực thể có cùng cấu trúc, các lớp phân loại các thực thể có cùng cấu trúc và hoạt động.
Vì vậy, bây giờ bạn có thể viết:
class Point
{
public:
void shiftX(int offset);
int x;
int y;
int z;
};
và sau đó:
Point p;
...
p.shiftX(-10);
Theo cách này, việc nhóm các hoạt động trên cùng một loại dữ liệu trở nên dễ dàng hơn. Ví dụ: bạn có thể nhóm tất cả các hoạt động tác động lên các điểm trong định nghĩa lớp, thay vì chúng phân tán trên mã của bạn dưới dạng các hàm có một hoặc nhiều tham số của điểm loại.
Ngoài ra, bạn có thể tinh chỉnh cả cấu trúc và hành vi bằng cách sử dụng tính kế thừa.
Tóm tắt: structs là một khái niệm cho phép tổ chức / mô đun hóa dữ liệu. Các lớp học cho phép tổ chức / mô đun hóa cả dữ liệu và hoạt động.
struct
từ khóa tùy chọn khi cấu trúc được sử dụng.