struct和class的区别

2018-04-04  本文已影响33人  li二彩

        相同点:都可以将多个数据封装为一个整体。

       不同点:

     1、结构体只能封装数据,类可以封装行为;

     2、结构体变量分配在栈空间,类对象分配在堆空间。栈空间相对较小,但是存储在栈中的数据访问的效率稍高;堆空间相对较大,但是存储在队中的数据效率低一些。

     3、结构体的赋值方式为拷贝,类对象的赋值方式为地址。

    应用场景

    1、如果封装的这个数据,不仅有数据还有方法,只能使用类;

    2、如果表示实体,没有行为,只有属性,且属性较少,就定义为结构体,分配在栈,提高运行效率;如果属性较多,则定义为类,因为结构体变量会在栈中占据很大一块空间,反而影响效率。

上一篇下一篇

猜你喜欢

热点阅读