struct和class的本质区别

本质区别

struct是值类型,而class是引用类型。值类型的实例通常是在线程栈上分配的(静态分配),但是在某些情形下可以存储在堆中。引用类型的对象总是在进程堆中分配(动态分配)。虽然堆栈的执行效率要比堆的高,但是堆栈资源却很有限,不适合处理逻辑复杂的大对象,因此struct常用来处理作为基类型对待的小对象,用class来处理更复杂的商业逻辑。

其他的使用上的区别

  1. struct字段和继承方式默认public,class则是private
  2. 结构体存储自身的数据,class仅存储一个动态对象的引用
  3. C语言中struct不可以为空,但是C++中可以

struct和class的本质区别
http://example.com/2024/01/02/struct和clas的本质区别/
作者
Jinming Zhang
发布于
2024年1月2日
许可协议