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

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

结构体和类的唯一区别就是:  结构体和类具有不同的默认访问控制属性

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

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

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

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

 

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

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

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

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

C++中空类的大小为1的原因

  空类也可以实例化,类实例化出的每个对象都需要有不同的内存地址,为使每个对象在内存中的地址不同,所以在类中会加入一个隐含的字节。

 

原文链接: https://www.cnblogs.com/Carrie-0173/p/6357715.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/248530

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午2:59
下一篇 2023年2月14日 上午2:59

相关推荐