
C++
文章平均质量分 64
YMY_mine
这个作者很懒,什么都没留下…
展开
-
那些函数可以设为虚函数,那些函数不可以?
C++中的虚函数的作用主要是实现了多态的机制,关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。 虚函数设置条件:1、可以取地址(静多态,动多态,取地址) 2、必须依赖对象调用可以设置为虚函数的: 析构函数 普通的成员函数...原创 2018-07-24 17:39:52 · 1502 阅读 · 0 评论 -
内联函数和宏、普通函数、static的区别
内联函数:1、对inline函数的处理发生在编译阶段,在调用点,把函数的代码直接展开,省去了函数栈帧的开销,代码运行效率高2、会进行类型检查(编译阶段),比宏更安全3、inline只在Release版本下才生效,即在debug版本下,inline和普通函数一样,也有栈帧的开辟和回退4、debug下,可以进行调试宏:1、预编译阶段处理的,纯粹是字符替换2、没有任何的类型检...原创 2018-08-05 01:36:49 · 332 阅读 · 0 评论 -
C++继承
一、继承作用:进行代码复用,将重复的部分作为公共部分来使用,从而不必在构建每一个类的时候都将相同的部分在写一遍。通过继承,可以获得父类的所有功能,并且可以重写已有功能,添加新功能。二、继承的规则与特点:1. 子类对象在创建时调用父类的构造函数,然后在调用自己的构造函数;先基类构造再派生构造。2. 子类可以直接使用父类的成员函数,也就是子类拥有父类的所有属性和行为。子类可以当做父类对象使用...原创 2018-08-02 00:40:41 · 277 阅读 · 0 评论 -
malloc()到底如何申请内存空间?
malloc()到底从哪里得到了内存空间?答案是从堆里面获得空间。也就是说函数返回的指针是指向堆里面的一块内存。 操作系统中有一个记录空闲内存地址的链表。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。 malloc函数的实质体现在,它有一个将可用的内存块连接为一...原创 2018-07-24 10:49:32 · 7251 阅读 · 0 评论 -
C++四种强转
标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。一、reinterpret_cast(不安全,类似于C语言的强制转换)reinterpret_cast转换是在类C转换的基础上,在编译期间,约束了整型、浮点型和枚举类型的相互转换。用法:reinpreter_cast<type-id> (...原创 2018-08-17 19:18:50 · 607 阅读 · 0 评论 -
vector
转自:https://www.cnblogs.com/zhonghuasong/p/5975979.html介绍vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分...转载 2018-09-12 00:24:24 · 203 阅读 · 0 评论 -
堆栈区别
1、管理方式不同;栈由编译器自动分配和释放,而堆需要程序员来手动分配和释放,若忘记delete,容易产生内存泄漏。2、空间大小不同;栈的内存空间是连续的,空间大小通常是系统预先规定好的,即由栈顶地址和最大空间是确定的;而堆得内存空间是不连续的,由一个记录空闲空间的链表负责管理,因此内存空间几乎没有限制,在32位系统下,内存空间大小可达到4G3、能否产生碎片不同;由于栈的内存空间是...原创 2018-09-24 10:12:35 · 970 阅读 · 0 评论