通常、次のようにC++構造体の変数を定義できます。
struct foo {
int bar;
};
構造体の関数も定義できますか?これらの関数をどのように使用しますか?
はい、struct
は、デフォルトのアクセスレベル(メンバー単位および継承単位)を除いて、class
と同じです。 (およびテンプレートで使用する場合、class
は追加の意味を持ちます)
クラスによってサポートされるすべての機能は、結果として構造体によってサポートされます。クラスに使用するのと同じメソッドを使用します。
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;
};