Thông thường, chúng ta có thể xác định một biến cho cấu trúc C ++, như trong
struct foo {
int bar;
};
Chúng ta cũng có thể xác định các hàm cho một cấu trúc không? Chúng ta sẽ sử dụng những chức năng đó như thế nào?
Câu trả lời:
Có, a struct
giống với a class
ngoại trừ cấp độ truy cập mặc định (thành viên khôn ngoan và thông thái kế thừa). (và ý nghĩa bổ sung class
mang theo khi được sử dụng với một mẫu)
Do đó, mọi chức năng được hỗ trợ bởi một lớp đều được hỗ trợ bởi một cấu trúc. Bạn sẽ sử dụng các phương thức giống như khi bạn sử dụng chúng cho một lớp học.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
Các cấu trúc có thể có các chức năng giống như các lớp. Sự khác biệt duy nhất là chúng được công khai theo mặc định:
struct A {
void f() {}
};
Ngoài ra, các cấu trúc cũng có thể có các hàm tạo và hàm hủy.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};