【发布时间】:2012-10-19 00:32:02
【问题描述】:
通常我们可以为 C++ 结构定义一个变量,如
struct foo {
int bar;
};
我们也可以为结构定义函数吗?我们将如何使用这些功能?
【问题讨论】:
通常我们可以为 C++ 结构定义一个变量,如
struct foo {
int bar;
};
我们也可以为结构定义函数吗?我们将如何使用这些功能?
【问题讨论】:
是的,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
【讨论】:
结构可以像类一样具有功能。唯一的区别是它们默认是公开的:
struct A {
void f() {}
};
此外,结构也可以有构造函数和析构函数。
struct A {
A() : x(5) {}
~A() {}
private: int x;
};
【讨论】: