
C++
文章平均质量分 87
Duc_Duke
天行健君子以自强不息、地势坤君子以厚德载物。
展开
-
C++_类和对象3_对象的生存周期
定义一个class类:class Test{public: Test(int a, int b) { std::cout << this << " :Test::Test(int,int)" << std::endl; ma = a; mb = b; } Test(int a)...原创 2018-12-06 17:53:28 · 376 阅读 · 0 评论 -
C++_浅拷贝、深拷贝、写时拷贝
浅拷贝:编译器只是直接将指针的值拷贝过来,结果多个对象共用了一块内存,当一个对象调用了析构函数将这块内存释放掉之后,另一些对象不知道这块空间已经还给了系统,再次调用析构函数进行释放时发现已经释放了,就会造成程序崩溃。在类的成员中有指针类型的成员变量的时候,必须对其写出显式的拷贝构造函数和赋值运算符重载函数,否则,默认的拷贝构造函数和赋值运算符重载函数只会对该指针进行浅拷贝(即直接将指针的值拷贝过...原创 2019-08-18 16:34:17 · 331 阅读 · 0 评论 -
const、static
const 有如下特点以及应用场景:在 C++中 const 是用来定义常量的,不能作为左值被修改,而且必须初始化。const 常量的初始值如果是一个明确的值,那么常量在编译期会被常量的初始值替换。在 C++中修饰的量也可以是常变量(和 C 语言相同),此时它只是不能作为左值,其他性质和普通变量一样,不能定义数组大小,没有编译时期值替换规则等,const 可以修饰成员方法,成为常成员方法,在...原创 2019-08-16 18:37:51 · 310 阅读 · 0 评论 -
数据库基础2_SQL基础操作
SQL基础操作DDL 数据定义语言:create drop alter show一:库 创建库:creat database [if not exists]name; db:数据库 删除库:drop databsae [if exists]name; if ...原创 2019-08-16 11:58:33 · 230 阅读 · 0 评论 -
C++_运算符重载
运算符重载:使自定义类型满足和内置类型相同的运算功能C++语言支持函数重载,重载的底层实现是,C++编译器编译函数符号的时候,是根据函数名和形参的个数,类型来共同决定的,因此如果一组函数只是函数名相同,而参数列表不同的话,那么它们生成的符号也是不同的,就不会产生冲突了,编译过程中,函数生成的符号不同。在编译器编译时,根据调用点用户传入的实参,来选择一个类型最为匹配的函数重载版本进行调用,这一...原创 2019-08-16 19:11:54 · 272 阅读 · 0 评论 -
C++_封装 、继承 、多态
C++的三大特征:封装 、继承 、多态。封装突破了C语言函数的概念,可以隐藏实现细节,使得代码模块化,继承可以扩展已存在的模块,它们目的都是为了:代码重用。而多态是为了实现另一个目的:接口重用。封装:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成...原创 2019-08-19 15:48:15 · 545 阅读 · 0 评论 -
C++_智能指针、强转指针
智能指针:C++ 98 auto_ptrC++11 unique_ptr shared_ptr weak_ptrauto_ptr:所有权唯一,新的智能指针取消旧智能指针所有权 ,赋值或者拷贝导致智能指针提前失效 (一个较为早期的版本(日常是不用的)解决拷贝构造(多次释放)的方法是管理权转移(以前的对象不再管理,把旧对象的管理空间的权限交给旧对象拷贝出的...原创 2019-08-19 16:05:39 · 1709 阅读 · 0 评论 -
数据库基础1
一、存储引擎二、索引三、事务一、存储引擎:一种文件的存储机制MySQL的默认存储引擎:V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB查看默认存储引擎:show variables like '%engine%'MyISAM: 不支持外键,不支持事务,支持全文索引,底层B+树,表锁(每次锁定一个表的数据),在线分析处理操作速度快 .fr...原创 2019-08-16 12:23:47 · 256 阅读 · 0 评论 -
C++_编译、链接原理及基础
基础知识点:冯诺依曼体系: 计算机运算器、控制器、内存、输入设备、输出设备CPU内存I/O计算机识别:0、1代码CPU识别:指令、数据计算机32位、64位:计算机一次性能计算数据大小的宽度、ALU(算术逻辑单元)的宽度操作系统:虚拟地址与物理地址的映...原创 2018-11-10 19:28:02 · 487 阅读 · 0 评论 -
C++_堆栈调用、调用约定
初级汇编与堆栈调用C代码: int a = 10;汇编指令:mov , prt[a];mov , dword prt[a] ,0ah;mov : 将一个源操作数赋值给目的操作数 push :压栈add :加法 sub:减法 ret:返回值跳转 pop :出栈lea : 将源操作数给出的有效地址传送到指定的的寄存器中.ebp:栈底指针寄存器 esp:...原创 2018-11-20 16:41:52 · 312 阅读 · 0 评论 -
C++_C和C++的区别1
1、函数的默认值int Get(int a , int b , int c=2);int Get(int a , int b=2 , int c);int Get(int a=2 , int b , int c);int Get(int a , int b , int c){ return a + b + c;}int main(){ Get(20); ...原创 2018-11-21 01:30:10 · 219 阅读 · 0 评论 -
C++_C和C++的区别2
接上篇const的其它用法:1、const - 形参:防止实参被修改、接收临时量(替代实参传递时的地址传递、形参为指针的定义)int Mul(const int& a, const int& b){ return a * b;}int main(){ int a = 10; int b = 20; Mul(10, 20); r...原创 2018-11-24 20:38:50 · 252 阅读 · 0 评论 -
C++_类和对象1_OPPO思想、封装
计算机用来模拟现实世界,用计算机语言解决现实中的问题,现实中的事务称为实体,实体存在属性、行为,实体经过抽象这一过程抽象为ADT(抽象数据类型),ADT存在属性、行为,ADT经计算机处理生成类,类存在成员变量和成员方法,类经过实例化生成对象,对象存在成员变量和成员方法,行为的执行者是实体,成员方法的执行者是对象将实体货物转化为对象的C++语言class CGoods{ v...原创 2018-11-24 21:28:17 · 410 阅读 · 0 评论 -
C++_类和对象2_类中6个默认的函数
类中6个默认的函数:特点:自己不提供时、由系统提供、所有系统提供的函数都是共有的、内联的,系统提供的函数调用时无形参列表且自动调用 自己提供时、系统不再提供1、构造函数2、析构函数3、拷贝构造函数4、赋值运算符的重载函数5、取地址操作符的重载函数6、const修饰的取地址的操作符的重载函数对象的生成:1、开辟内存 2、内存空间的初始化1、构造...原创 2018-11-25 00:17:59 · 284 阅读 · 0 评论 -
C++_内存池
默认内存管理的不足:malloc/free 和 new/delete 在堆上申请和释放内存都有一定的额外开销。开销来自维护 内存空闲块表。malloc和new 申请堆内存时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法找到合适大小的空闲内存块。如果该空闲内存块过大,还需要切割成已分配的部分和较小的空闲块。然后系统更新内存空闲块表,完成一次内存分配。类似地,在free和delete释放内...原创 2019-08-18 17:24:39 · 327 阅读 · 0 评论