c++
dailelelelele
这个作者很懒,什么都没留下…
展开
-
面向对象和基于对象
前言 基于对象是从面向对象演变过来的, 面向对象已经诞生了这么长时间,为什么现在基于对象会越来越收欢迎呢? “成也萧何,败也萧何” 为了解释这个问题,就不得不提到面向对象的三大特征:封装、继承、多态。 这些带来的好处:易维护、质量好、效率高、易扩展、易复用。 同时也带来了很大的坏处: 复杂 但是,在现代的编程语言发展至今,有一个明显的趋势,就是动态化和脚本化。我们可以发现最新兴起的语言,绝大多数都脚本语言,比如Ruby/Lua/Python,而C++语言的新规范,也更多的倾向动态类型推断和lamda表原创 2020-08-14 15:13:38 · 445 阅读 · 0 评论 -
boost 智能指针库
内存管理需要注意的点 内存泄漏 野指针 访问越界 为了避免这些问题,智能指针采用RAII机制 —资源获取既初始化 所有初始化操作移到对象的构造函数中 所有的释放操作都放在对象的析构函数里 适当的异常处理代码来应付对象构造期间丢出的异常(分配内存的时候) 好处:对象创建后,用户能开始正确使用对象,不用担心对象的有效性或者是否还要作进一步的初始化操作。 scoped_ptr 不能拷贝,赋值。...原创 2020-03-18 20:03:11 · 212 阅读 · 0 评论 -
动态内存--智能指针
为什么有智能指针 在写程序的时候,经常会使用堆中的内存,但是有特别容易忘记释放这块内存,这就会造成内存泄露。但在我们日常的小编程中,尽管内存泄露,也不会影响我们的程序。这可是一个隐患,在编写大程序的时候特别容易造成程序崩溃。为了解决这个问题,标准库提供了两种智能指针类型来管理动态对象。功能类似于常规指针,但智能的一点是–当没有指针指向该对象时,会自动释放该对象所占用的堆内存。这就极大的避免程序员因...原创 2019-10-27 23:02:31 · 155 阅读 · 0 评论 -
c++ 构造函数
构造函数 调用时间: 创建一个对象是 会自动调用 构造函数. 如果 创建 的是一个指针变量是不会调用构造函数, 当 new 一个新空间时,就会自动调用构造函数. 构造函数的名字和类名相同,一个类中可以定义多个构造函数.不同的构造函数 之间 是重载关系. 如果一个类没有定义构造函数,则系统会自动给该类定义一个构造函数 称为 默认构造函数. 而一旦 一个类中 有构造函数,则不会再给这...原创 2019-08-28 00:04:55 · 211 阅读 · 0 评论 -
c++控制输出
流和缓冲区 c++ 程序把输入和输出看做字节流.输入时,程序从输入流中抽取字节,输出时,程序将字节插入到输出流中. 缓冲区:缓冲区可以搞笑的处理输入和输出.缓冲区是作用中介的内存块,它是将信息从设备传输到程序,或从程序传输给设备的临时存储工具. 缓冲方法: 从磁盘上读取大量信息,将这些信息存储在缓冲区,然后每次从缓冲区里读取一个字节,因为从内存中读取单个字节的速度比从硬盘上读取快的多,所以 缓冲方...原创 2019-08-29 01:15:56 · 766 阅读 · 0 评论 -
继承和动态内存分配
两种情况 一 派生类不使用new 二 派生类使用new 派生类不使用 new 前提 : 基类使用了new,派生类不使用 new 结果 : 不需要给派生类定义显式的析构函数,复制构造函数,赋值运算符. 原因: 析构函数: 派生类的默认析构函数进行的操作: 执行自身的代码后调用基类析构函数. 因为派生类 不使用 new,则派生类的构造函数 不需要执行任何特殊的操作,所以 默认析构函数 ok. 复...原创 2019-09-03 23:10:45 · 169 阅读 · 0 评论