C ++结构的函数


93

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

struct foo {
  int bar;
};

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


4
是。与您在C ++中的类相同
DumbCoder 2012年

Answers:


142

是的,除了默认访问级别(成员级和继承级)外,astruct与aclass相同。(以及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;
};
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.