Fungsi untuk C ++ struct


93

Biasanya kita dapat mendefinisikan variabel untuk struct C ++, seperti pada

struct foo {
  int bar;
};

Bisakah kita juga mendefinisikan fungsi untuk struct? Bagaimana kita menggunakan fungsi tersebut?


4
Iya. Sama seperti yang Anda lakukan untuk kelas di C ++
DumbCoder

Jawaban:


142

Ya, a structidentik dengan a classkecuali untuk tingkat akses default (berdasarkan anggota dan berdasarkan warisan). (dan makna tambahannya classterbawa saat digunakan dengan template)

Karena itu, setiap fungsionalitas yang didukung oleh sebuah kelas didukung oleh sebuah struct. Anda akan menggunakan metode yang sama seperti yang Anda gunakan untuk kelas.

struct foo {
  int bar;
  foo() : bar(3) {}   //look, a constructor
  int getBar() 
  { 
    return bar; 
  }
};

foo f;
int y = f.getBar(); // y is 3

37

Struktur dapat memiliki fungsi seperti kelas. Satu-satunya perbedaan adalah bahwa mereka bersifat publik secara default:

struct A {
    void f() {}
};

Selain itu, struct juga dapat memiliki konstruktor dan destruktor.

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

    private: int x;
};
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.