19 C++类与结构体对比
structure(结构体)和class(类),二者基本没区别。
1. 唯一区别
struct默认是public的
struct Player
{
int x, y;
int speed;
};
int main()
{
Player player;
player.x = 5; // 编译不报错
std::cin.get();
}
struct Player // 设置私有属性
{
private:
int x, y;
int speed;
};
int main()
{
Player player;
player.x = 5; // 编译报错
std::cin.get();
}
2. 使用区别
作用上确实区别不大,但是代码实际使用时确实有所不同。
C++中结构体存在的唯一原因是因为它想要维持与C之间的兼容性,因为C中没有class
二者的使用选择每人有自己的理解,是个人的编程风格。比如想默认public就用struct
Cherno‘s idea
-
struct: 只用来表示一些数据,绝对不继承
-
class:很多功能的类,可能继承的东西