ฟังก์ชันสำหรับโครงสร้าง C ++


93

โดยปกติเราสามารถกำหนดตัวแปรสำหรับโครงสร้าง C ++ ได้เช่นเดียวกับใน

struct foo {
  int bar;
};

เราสามารถกำหนดฟังก์ชันสำหรับโครงสร้างได้หรือไม่? เราจะใช้ฟังก์ชันเหล่านั้นอย่างไร?


4
ใช่. เช่นเดียวกับที่คุณทำกับคลาสใน C ++
DumbCoder

คำตอบ:


142

ใช่ 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

37

โครงสร้างสามารถมีฟังก์ชันได้เช่นเดียวกับคลาส ข้อแตกต่างเพียงอย่างเดียวคือเป็นสาธารณะโดยค่าเริ่มต้น:

struct A {
    void f() {}
};

นอกจากนี้โครงสร้างยังสามารถมีตัวสร้างและตัวทำลาย

struct A {
    A() : x(5) {}
    ~A() {}

    private: int x;
};
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.