通常、C ++構造体の変数は次のように定義できます。
struct foo {
int bar;
};
構造体の関数を定義することもできますか?これらの関数をどのように使用しますか?
回答:
はい、astruct
は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;
};