![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
暮中听竹雨
这个作者很懒,什么都没留下…
展开
-
为什么父类的析构函数必须是虚函数,而C++默认的析构函数不是虚函数?
为什么父类的析构函数必须是虚函数,而C++默认的析构函数不是虚函数?因为当我们用基类指针指向new出来的子类时,根据动态绑定可以确保子类新添加的部分也可以被顺利释放掉,以防出现内存泄漏。而默认的析构函数不是虚函数的原因是因为:虚函数需要额外的虚函数表和虚表指针,会占用格外内存,对于不会有子类的类来说,这个是没有必要的。虚函数和虚表指针:https://blog.twofei.com/496/...原创 2020-12-31 17:30:14 · 906 阅读 · 0 评论 -
C++指针和数组的区别
原创 2020-12-31 17:14:37 · 132 阅读 · 1 评论 -
C++智能指针
C++智能指针智能指针概述shared_ptrunique_ptweak_ptr智能指针概述智能指针存在的目的是为了能够更加容易和安全的使用动态内存。分为三类:共享型shared_ptr、独占型unique_ptr和伴随型weak_ptr。shared_ptrshared_ptr实现共享式拥有概念。多个智能指针可以指向相同对象,该对象和其相关资源会在“最后一个引用被销毁”时候释放。它使用计数机制来表明资源被几个指针共享。可以通过成员函数use_count()来查看资源的所有者个数。除了可以通过new原创 2020-12-31 14:32:12 · 68 阅读 · 0 评论 -
C/C++中指针和引用的区别
C/C++中指针和引用的区别指针有自己的空间,而引用只是一个别名使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象 的引用作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引 用的修改都会改变引用所指向的对象可以有const指针,但是没有const引用指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能 被改变指针可以有多级指针(**p),而引用至于一级指针和引用使用++运算符的意义不一样如果返回动态内存原创 2020-12-31 13:51:25 · 363 阅读 · 0 评论 -
static关键字的作用
C++语言大类基本语言说一下static关键字的作用说一下C++和C的区别C++中的四种cast转换C/C++中指针和引用的区别基本语言说一下static关键字的作用1.在全局变量之前加上关键字static,则该变量被进一步定义成全局静态变量。static修改标识符的链接类型external->internal。使得这些符号只能在声明他们的源文件中使用。存储在静态存储区,在整个程序的运行期间一直存在。未经初始化的全局静态变量会被自动初始化为0。全局静态变量在声明它的文件外是不可见的,从定义处到文原创 2020-12-30 21:52:28 · 98 阅读 · 0 评论 -
C++中的四种cast转换
C++中四种类型转换是:static_cast, dynamic_cast, const_cast, reinterpret_cast。1.const_cast用于将const变量转化为非const。2.static_cast用于各种隐式转换,比如非const转const,void*转指针。能用于多态向上转换,向下转换能成功但是不安全。3.dynamic_cast***用于动态类型转换,只能用于含有虚函数的类,用于类层次间的向上和向下转换,只能转指针或引用。向下转化时,非法情况下,对指针返回NU原创 2020-12-30 21:48:56 · 337 阅读 · 0 评论 -
C++和C的区别
设计思想上:C++是面对对象的语言,而C是面向过程的结构化编程语言。语法上:C++具有封装、继承和多态三种特性。C++相比C,增加了许多类型安全的功能,比如强制类型转换。C++支持泛型编程,比如模板类、函数模板等。...原创 2020-12-30 21:26:19 · 149 阅读 · 0 评论 -
数据结构与算法之刷题——如何将链表从尾到头的存放到容器中去
方法一:利用堆栈进行弹栈存储思路如下:首先将链表中的值,按顺序存放到堆栈中去,然后利用栈先进后出的特性,将值弹出并保存到容器中去。代码如下:// class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> value; ListNode *p=NULL; p=head;原创 2020-08-01 10:59:34 · 142 阅读 · 0 评论 -
C++二维容器vector的使用及一个经典案例
C++二维容器vector的使用及一个经典案例vector(容器)的调用及初始化二维vector的插入元素经典案例---查找某元素target是否存在二维数组vector中vector(容器)的调用及初始化C++使用vector前需要调用其头文件,为了方便最好还要使用命名空间,输入如下:#include<vector>using std::vector;需要注意的是,vector不能容纳对象引用作为其元素,因为引用不是一个对象。在C++11中,二维容器的定义式可以写成vector<原创 2020-07-22 15:23:53 · 9634 阅读 · 2 评论