通常、C++構造体の変数を次のように定義できます。
struct foo {
int bar;
};
構造体の関数を定義することもできますか?これらの関数をどのように使用しますか?
はい、aは、デフォルトのアクセスレベル(メンバー単位および継承単位)を除いて、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;
};