C 和 C++ struct 的区别?

目录

1. 默认访问权限

2. 面向对象特性

3. 继承和多态

4. 访问控制

5. 使用习惯

6. 默认继承权限


1. 默认访问权限

  • C 语言:在 C 中,struct 中的所有成员默认是 public(可直接访问)。
  • C++ 语言:在 C++ 中,struct 中的成员默认是 public,但它也可以包含函数(包括构造函数和析构函数)。

2. 面向对象特性

  • C 语言struct 仅用于组织数据,不能包含成员函数。
  • C++ 语言struct 可以包含成员函数(包括构造函数、析构函数、拷贝构造函数和赋值运算符),类似于 class

3. 继承和多态

  • C 语言:不支持继承和多态,struct 只是简单的数据集合。
  • C++ 语言struct 支持继承和多态,因此可以被用作基类或派生类。

4. 访问控制

  • C 语言struct 只有 public 访问权限,没有访问控制关键字。
  • C++ 语言structclass 一样,可以使用 publicprivate、和 protected 控制成员的访问权限。

5. 使用习惯

  • C 语言:在 C 中使用 struct 时,需要在声明变量时加上 struct 关键字。例如:
struct Point {
    int x;
    int y;
};

struct Point p; // 需要使用 struct 关键字
  • C++ 语言:在 C++ 中可以直接使用 struct 名字声明变量,而不需要额外的 struct 关键字。例如:
struct Point {
    int x;
    int y;
};

Point p; // 不需要 struct 关键字

6. 默认继承权限

  • C++ 语言:如果 struct 作为基类继承到派生类,默认继承权限是 public,而 class 的默认继承权限是 private
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值