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

直接进入主题:
    C++中结构体和类差不多是相同的,主要区别就是结构体的默认属性是public,二类的默认属性是private。
C和C++中结构体的区别主要有以下几点:

    1、C中结构体不能有成员函数,而C++中可以有,甚至可以有虚函数。所以C中不存在构造函数、虚构函数和this指针。
    2、C结构体只有public一种权限,而C++结构体有public、private、protect三种权限。

    3、C结构体没有继承关系,而C++结构体可以从类或者其他结构体继承而来。
    4、C结构体不能在结构体中初始化成员变量,而C++结构体可以。

    5、C结构体在定义时除非使用typedef,否则之后定义变量都必须跟上struct + 结构体名,而C++结构体可以直接使用结构体名,不受限制。
    6、C结构体不能有静态成员变量,而C++结构体可以有。

    7、C结构体的空结构体sizeof为0,C++的sizeof为1。

    8、数据隐藏,C结构体不存在数据隐藏这个概念,C++结构体有,因为C++面向对象。
    9、访问修饰符,C中没有访问修饰符,因为这些修饰符不被语言支配,C++中有,因为它是C++内置的。

你可能感兴趣的:(C/C++)