目录
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++ 语言:
struct
和class
一样,可以使用public
、private
、和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
。