114

通常我们可以为 C++ 结构定义一个变量,如

struct foo {
  int bar;
};

我们还可以为结构定义函数吗?我们将如何使用这些功能?

4

2 回答 2

178

是的,除了默认访问级别(成员方式和继承方式)之外,astruct与 a 相同。(与模板一起使用时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 回答