C++编程中,你是否有为 我到底该写个struct还是class 而苦恼过?如果你到现在还不知道该如何选择,那么请求继续阅读,下文或许能给你些建议。
C++语言继承了 C语言的 struct,并且加以扩充。在 C语言中,struct 是只能定义数据成员,而不能定义成员函数的。而在 C++ 中,struct 类似于 class,既可以定义数据成员,又可以定义成员函数。
在 C++ 中,struct 与 class 基本是通用的,唯一不同的是如果使用 class 关键字,类中定义的成员变量或成员函数默认都是 private 属性的,而采用 struct 关键字,结构体中定义的成员变量或成员函数默认都是 public 属性的。
在 C++ 中,没有抛弃 C语言中的 struct 关键字,其意义就在于给 C 语言程序开发人员有一个归属感,并且能让 C++ 编译器兼容以前用 C 语言开发出来的项目。
可以采用下面的编程规范:
【强制】class表示被封装的用户自定义类型,不公开定义非静态数据成员,一般通过成员方法进行交互。
【建议】struct表示数据的简单集合,公开定义数据成员,只定义用于初始化数据成员的方法(比如:构造/析构函数,initialize(), reset(), validate())。
【解释】
【示例】
// 简单的数据聚合,没有动作
struct Coordinate {
int x;
int y;
int z;
};
// 有动作的对象
class Cat {
public:
void meow();
private:
...
};