C ++構造体の関数


93

通常、C ++構造体の変数は次のように定義できます。

struct foo {
  int bar;
};

構造体の関数を定義することもできますか?これらの関数をどのように使用しますか?


4
はい。C ++のクラスの場合と同じ
DumbCoder 2012年

回答:


142

はい、astructclass、デフォルトのアクセスレベル(メンバー単位および継承単位)を除いて、と同じです。(そして、classテンプレートと一緒に使用すると、余分な意味があります)

したがって、クラスによってサポートされるすべての機能は、構造体によってサポートされます。クラスで使用するのと同じメソッドを使用します。

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

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

37

構造体は、クラスと同じように関数を持つことができます。唯一の違いは、デフォルトで公開されていることです。

struct A {
    void f() {}
};

さらに、構造体はコンストラクタとデストラクタを持つこともできます。

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

    private: int x;
};
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.