在C++中,struct和class完全相同,除了struct默认为public和class默认为privacy
C和C++结构之间的一些重要区别:
- 结构内部的成员函数:C中结构内部不能有成员函数,C++可以
- C结构中不能直接初始化成员,C++中可以
- C++中声明结构变量时,不一定需要在前面加上struct关键字
- C结构不能具有静态成员,C++可以
- C结构中体中不能创建构造函数,C++可以,如下面代码:
#include <iostream>
using namespace std;
struct Student {
int roll;
Student(int x)
{
roll = x;
}
};
int main()
{
struct Student s(2);
cout << s.roll;
return 0;
}
- C中的空结构生成0,而C++中的空结构生成1.
- C结构不允许数据隐藏,C++可以,因为C++是面向对象的语言
- C结构没有访问修饰符,C++结构可以