โดยปกติเราสามารถกำหนดตัวแปรสำหรับโครงสร้าง C ++ ได้เช่นเดียวกับใน
struct foo {
int bar;
};
เราสามารถกำหนดฟังก์ชันสำหรับโครงสร้างได้หรือไม่? เราจะใช้ฟังก์ชันเหล่านั้นอย่างไร?
โดยปกติเราสามารถกำหนดตัวแปรสำหรับโครงสร้าง C ++ ได้เช่นเดียวกับใน
struct foo {
int bar;
};
เราสามารถกำหนดฟังก์ชันสำหรับโครงสร้างได้หรือไม่? เราจะใช้ฟังก์ชันเหล่านั้นอย่างไร?
คำตอบ:
ใช่ a struct
เหมือนกับข้อclass
ยกเว้นสำหรับระดับการเข้าถึงเริ่มต้น (สมาชิกที่ชาญฉลาดและฉลาดในการสืบทอด) (และมีความหมายพิเศษclass
เมื่อใช้กับเทมเพลต)
ทุกฟังก์ชันที่คลาสรองรับจึงได้รับการสนับสนุนจาก struct คุณจะใช้วิธีการเดียวกับที่คุณใช้ในชั้นเรียน
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
โครงสร้างสามารถมีฟังก์ชันได้เช่นเดียวกับคลาส ข้อแตกต่างเพียงอย่างเดียวคือเป็นสาธารณะโดยค่าเริ่มต้น:
struct A {
void f() {}
};
นอกจากนี้โครงสร้างยังสามารถมีตัวสร้างและตัวทำลาย
struct A {
A() : x(5) {}
~A() {}
private: int x;
};