<返回更多

C++ struct和class的选择

2021-10-18    菜园酱
加入收藏

C++编程中,你是否有为 我到底该写个struct还是class 而苦恼过?如果你到现在还不知道该如何选择,那么请求继续阅读,下文或许能给你些建议。

问题的产生

C++语言继承了 C语言的 struct,并且加以扩充。在 C语言中,struct 是只能定义数据成员,而不能定义成员函数的。而在 C++ 中,struct 类似于 class,既可以定义数据成员,又可以定义成员函数。
在 C++ 中,struct 与 class 基本是通用的,唯一不同的是如果使用 class 关键字,类中定义的成员变量或成员函数默认都是 private 属性的,而采用 struct 关键字,结构体中定义的成员变量或成员函数默认都是 public 属性的。

在 C++ 中,没有抛弃 C语言中的 struct 关键字,其意义就在于给 C 语言程序开发人员有一个归属感,并且能让 C++ 编译器兼容以前用 C 语言开发出来的项目。

选择用struct还是class

可以采用下面的编程规范:

【强制】class表示被封装的用户自定义类型,不公开定义非静态数据成员,一般通过成员方法进行交互。

【建议】struct表示数据的简单集合,公开定义数据成员,只定义用于初始化数据成员的方法(比如:构造/析构函数,initialize(), reset(), validate())。

【解释】

【示例】

// 简单的数据聚合,没有动作
struct Coordinate {
    int x;
    int y;
    int z;
};

// 有动作的对象
class Cat {
public:
    void meow();
private:
    ...
};
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>