Pertanyaan Fungsi untuk struct C ++


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

struct foo {
  int bar;
};

Bisakah kita juga mendefinisikan fungsi untuk sebuah struct? Bagaimana kita akan menggunakan fungsi-fungsi itu?


57
2017-10-29 16:41


asal


Jawaban:


Iya struct identik dengan a class kecuali untuk tingkat akses standar (anggota-bijaksana dan warisan-bijaksana). (dan arti tambahannya class dibawa saat digunakan dengan template)

Setiap fungsi yang didukung oleh sebuah kelas adalah didukung oleh sebuah struct. Anda akan menggunakan metode yang sama seperti Anda menggunakannya 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

93
2017-10-29 16:42



Struct dapat memiliki fungsi seperti halnya 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;
};

21
2017-10-29 16:46