![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
晓源Galois
找工作状态
展开
-
C++|68.虚析构函数
在父类的析构函数添加virtual(相当于一个提醒标志),使其转化为虚函数,这也就意味着会建立对应的虚函数表,当析构时不单会对当前类进行考虑,还会考虑所派生的子类的虚够函数。Derived继承了Base,Derived本身自带析构函数,而由于继承了Base,Derived是否也会将Base的构造函数和析构函数一并继承过来?经检验,Derived类的构造函数包括Base和自身自带,同时析构函数亦是如此。且父类构造函数优先于自身,所继承的父类的析构函数晚于自身。中申请的m_Array并没有被销毁。原创 2024-01-14 11:28:14 · 428 阅读 · 0 评论 -
C++|44.智能指针
当智能指针离开作用域后,将自行进行销毁,如果说智能指针真能复制的话,那么全部复制了的智能指针也会销毁,但已经销毁了,就没有必要再有销毁这个功能了。由上图观察得到,智能指针的源码删除了智能的构造函数和赋值运算(的重载),所以没办法对智能指针进行复制。而智能指针相对普通的指针将申请和销毁封装到整个指针内部,于是就不用特地去人为的申请和销毁。它只是说如果当前场景是懒得去人工删/不需要人工删的情况,可以考虑使用智能指针。通常的指针是需要特殊地去申请对应的空间,并在不使用的时候还需要人工去销毁。原创 2024-01-13 02:37:29 · 449 阅读 · 0 评论 -
C++|28.虚函数
用来告诉该函数是一个虚函数。原创 2024-01-11 19:34:57 · 369 阅读 · 0 评论 -
c++|关键字extern
一个C语言项目往往由多个文件组合而成。而对于多个文件来说,它们可能会共用到一些相同的变量。而有些情况下,这些相同的变量并没有出现在本文件内,有可能在其他文件内。而一个文件可能只会搜寻该文件内部是否有该变量。所以,需要用extern去提醒这个文件,不单要注意该文件内是否具有该变量,还有注意其他一起构成项目的文件是否也具有该变量。原创 2024-01-10 01:33:56 · 401 阅读 · 0 评论 -
C++|19.C++类与结构体对比
类和结构体本质上并没有太大区别。但两者在默认上有所区别。类默认成员变量是私有的,而结构体默认成员变量是公有的。也就是说,对于一个类来说,会默认使用private去保护其内部成员变量使得无法直接访问到其内部的变量。同时从诞生来看,C是没有类的概念的,但有结构体的概念。这与C语言和C++面向对象应该也有关系:C语言是面向过程的,而C++是面向对象的。也就是说C++是有面向对象的需求,需要建设一个类的概念去符合C++面向对象的想法。原创 2024-01-09 18:07:11 · 513 阅读 · 0 评论 -
C++|34.C++中的const
第一个const 代表方法返回的指针的内容无法进行修改,第二个const代表方法返回的指针的指向地址无法进行修改,第三个const代表该方法无法对类内的元素进行修改。指针总是包含两部分信息,一个是指针所指向的地址,一个是指针所指向的地址里放的内容。时,会发现如果尝试去修改指针a指向的地址时,会产生错误。应用场景:比如设置一些和标准相关的值,如上下限等等。用于限定a的大小,使a变成一个恒定不变的值。使得类内的函数无法对类的成员变量进行修改。来说,它们会使得a指向的值无法进行修改。原创 2024-01-05 10:18:16 · 450 阅读 · 0 评论