通常我们可以为C ++结构定义一个变量,如
struct foo {
int bar;
};
我们还可以为结构定义函数吗?我们如何使用这些功能?
答案 0 :(得分:114)
是的,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
答案 1 :(得分:29)
结构可以像类一样具有函数。唯一的区别是它们默认是公开的:
struct A {
void f() {}
};
此外,结构体也可以有构造函数和析构函数。
struct A {
A() : x(5) {}
~A() {}
private: int x;
};