C ++ struct işlevi


93

Genellikle bir C ++ yapısı için bir değişken tanımlayabiliriz.

struct foo {
  int bar;
};

Bir yapı için fonksiyonlar da tanımlayabilir miyiz? Bu işlevleri nasıl kullanırız?


4
Evet. C ++ 'da bir sınıfta yaptığınız gibi
DumbCoder

Yanıtlar:


142

Evet, a struct, classvarsayılan erişim düzeyi (üye açısından ve miras açısından) dışında a ile aynıdır . (ve classbir şablonla birlikte kullanıldığında ekstra anlam taşır)

Bir sınıf tarafından desteklenen her işlevsellik sonuç olarak bir yapı tarafından desteklenir. Yöntemleri, bir sınıf için kullandığınız gibi kullanırsınız.

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

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

37

Yapılar, sınıflar gibi işlevlere sahip olabilir. Tek fark, varsayılan olarak herkese açık olmalarıdır:

struct A {
    void f() {}
};

Ek olarak, yapıların kurucuları ve yıkıcıları da olabilir.

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

    private: int x;
};
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.