114

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

struct foo {
  int bar;
};

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

4

2 に答える 2

178

はい、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
于 2012-10-29T16:42:15.570 に答える
46

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

struct A {
    void f() {}
};

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

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

    private: int x;
};
于 2012-10-29T16:46:59.167 に答える