Trong ngôn ngữ lập trình C++, các lớp và cấu trúc (struct) là các bản thiết kế được sử dụng để tạo ra thể hiện của một lớp. Struct trong C++ được sử dụng cho các đối tượng nhẹ như Hinhtron, Color, Point v.v.
Không giống như lớp, struct trong C++ kiểu giá trị hơn là kiểu tham chiếu. Nó rất hữu ích nếu bạn có dữ liệu không có ý định sửa đổi sau khi tạo struct.
Struct trong C++ là một tập hợp các loại dữ liệu khác nhau. Nó tương tự như lớp chứa các loại dữ liệu khác nhau.
Nội dung chính
Cú pháp
struct structure_name { // khai báo thành viên. }
Trong khai báo trên, một cấu trúc được khai báo bằng cách đặt trước từ khóa struct theo sau là định danh (tên cấu trúc). Bên trong các dấu ngoặc nhọn, chúng ta có thể khai báo các biến thành viên của các loại khác nhau. Ví dụ:
struct Student { char name[20]; int id; int age; }
Trong trường hợp trên, Student là một cấu trúc chứa ba biến name, id và age. Khi cấu trúc được khai báo, không có bộ nhớ được phân bổ. Khi biến của cấu trúc được tạo, thì bộ nhớ được cấp phát.
Làm thế nào để tạo thể hiện của struct
Biến cấu trúc có thể được định nghĩa là:
Student s;
Ở đây, s là một biến cấu trúc của kiểu Student. Khi biến cấu trúc được tạo, bộ nhớ sẽ được phân bổ. Cấu trúc sinh viên chứa một biến char và hai biến số nguyên. Do đó, bộ nhớ cho một biến char là 1 byte và hai int sẽ là 2 * 4 = 8. Tổng bộ nhớ chiếm bởi biến s là 9 byte.
Cách truy cập biến struct
Biến của struct có thể được truy cập bằng cách sử dụng thể hiện của struct theo sau bởi toán tử (.) Và sau đó là trường của struct. Ví dụ:
s.id = 10;
Ví dụ struct trong C++
Ví dụ về struct hình chữ nhật có hai chiều rộng và chiều cao:
#include <iostream> using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width = 8; rec.height = 5; cout << "Dien tich hinh chu nhat la: " << (rec.width * rec.height) << endl; return 0; }
Kết quả:
Dien tich hinh chu nhat la: 40
Ví dụ về cấu trúc C++: Sử dụng phương thức và Constructor
Ví dụ sau sử dụng Struct nơi mà khởi tạo dữ liệu và phương thức để tính diện tích hình chữ nhật.
#include <iostream> using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout << "Dien tich hinh chu nhat la: " << (width * height); } }; int main(void) { struct Rectangle rec = Rectangle(4, 10); rec.areaOfRectangle(); return 0; }
Kết quả:
Dien tich hinh chu nhat la: 40