C + + 结构的函数

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

struct foo {
int bar;
};

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

227426 次浏览

Yes, a struct is identical to a class except for the default access level (member-wise and inheritance-wise). (and the extra meaning class carries when used with a template)

因此,类支持的每个功能都由一个结构支持。方法的使用方式与类的使用方式相同。

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 还可以有构造函数和析构函数。

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


private: int x;
};