C++中结构体和类的区别

在C++中,结构体是一种特殊形态的类。函数

结构体和类的惟一区别就是:  结构体和类具备不一样的默认访问控制属性spa

  中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private)对象

  结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型(public)继承

C++中,不使用结构体丝绝不会影响程序的表达能力。C++之因此要引入结构体,是为了保持和C程序的兼容性。内存

有时仍会在C++中使用结构体,是由于,能够使用结构体将不一样类型数据组成总体,方便于保存数据。(若用类来保存,因类中成员默认为私有,还要为每一个数据成员特定函数来读取和改写各个属性,比较麻烦。)class

 

C语言中结构体不容许定义函数成员,且没有访问控制属性的概念。兼容性

C++为C语言中的结构体引入了成员函数、访问控制权限、继承、包含多态等面向对象特性。权限

C++在struct以外引入了class关键字,但为了保持与C程序的兼容,C++保留了struct关键字,并规定结构体默认访问控制权限为公有类型。程序

另外,C语言中,空结构体的大小为0,而C++中空结构体(属于空类)的大小为1数据

C++中空类的大小为1的缘由

  空类也能够实例化,类实例化出的每一个对象都须要有不一样的内存地址,为使每一个对象在内存中的地址不一样,因此在类中会加入一个隐含的字节。

相关文章
相关标签/搜索