美文网首页
2018-08-23

2018-08-23

作者: dehaoye | 来源:发表于2018-08-24 12:43 被阅读0次

1. C++中的堆对象与栈对象

1.1静态建立

Type a这种方式就是静态建立,静态建立一个类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。

1.2动态建立

A* p = new A( )这种方式为动态建立。动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针。

1.3 两者区别

静态建立的对象是基于栈之中的,所以当栈被释放时,相应的变量也会被释放。如局部变量,是在一个函数刚执行时产生的栈中,在函数执行完毕时,相应的栈也会被释放,所以局部变量也会被释放。在之前的一个程序中,我们一个函数内用静态建立定义了一个数组,进行相应的操作后将数组返回给主函数,结果却被告知指针未定义。后来才知道,那个数组在子函数结束后也被自动释放了,所以那片内存区域变为了未定义的内存区域。所以遇到这种情况就需要使用动态建立,但是动态建立需要我们手动释放或者在程序结束后由操作系统负责释放,否则会造成内存泄漏。

2. 对C++中虚函数的最初认识

虚函数的提出是为了多态性的问题。就我目前认知而言,多态性是指我们对不同的具体对象,都可以用父类进行统一表达,也就是说可以用同一父类的指针进行表达,而且在调用方法时又能根据不同具体子类的变化而相应改变。值得注意的是,使用多态特性,都要使用指针。因为不同子类的大小是不一定的,若直接使用容器,就会切割不同子类的实例,而使用指针则会避免这个问题。

3. 父类,(抽象基?)

父类的设计需要定义一个空的虚函数,也就是纯虚函数,这有利于统一。同时需要定义一个虚的析构函数,这也是为了能够正确调用子类的析构函数。

相关文章

  • 设立具体的目标

    2018-08-23 戴师傅 2018-08-23 20:32 打开App (稻盛哲学学习会)打卡第120天 姓名...

  • 去掉烂模式,从自己做起

    幸福时刻(173)2018.8.23 利花花 关注 2018-08-23 11:20 · 字数 2049 · 阅读...

  • Day11 #100DaysofMLCoding#

    2018-08-23 24https://github.com/hse-aml/intro-to-dl以及如何用c...

  • 懂你 L4-U1-1-Dialogue

    流利说 D57 2018-08-23 四 一、复习 Level4-Unit1-Part1*Learning- Vo...

  • 2018-08-23

    《如何学习》四 41晓春 晓春的蜗居 2018-08-23 07:19 · 字数 412 · 阅读 0 · 日记本...

  • 设立具体的目标

    2018-08-23 (稻盛哲学学习会)打卡第101天 姓名:祝新华 部门:业务部 组别:待定 【知~学习】...

  • 设立具体的目标

    2018-08-23 (稻盛哲学学习会)打卡第140天 姓名:王燕君 部门:分水碶 组别:利他三组 【知~学习】 ...

  • Android集成友盟QQ分享闪退,IllegalStateEx

    问题: 集成友盟,分享到QQ,出现闪退。 手机:华为P10,操作系统:安卓 8.0 | 2018-08-23 22...

  • 2018-08-23

    2018-08-23 事件:今天单位同事一起聚餐。 感受:开心,感恩,感谢。 想法:这几年和大家在一起很开心,感恩...

  • 2018-08-23推广恩师课程

    2018-08-23推广恩师--小巫老师,小巫养育学堂的课程。非常感恩平台给到我的支持。感恩这份美好的相遇,越成长...

网友评论

      本文标题:2018-08-23

      本文链接:https://www.haomeiwen.com/subject/rmnpiftx.html