
C++基础积累
文章平均质量分 66
AtwOne
这个作者很懒,什么都没留下…
展开
-
C++积累之多态
1、概括:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。2、实现多态性的条件:存在基类、派生类之间的继承关系,且基类的成员函数有被定义成virtual,派生类中重写该函数。在使用时,用基类的指针(引用)指向(引用)派生类对象。用基类的指针(引用)调用虚函数,...原创 2018-04-07 16:08:58 · 247 阅读 · 0 评论 -
getopt----解析main函数中的参数
转自------ Linux下getopt()函数的简单使用 "a:b:cd::e",这就是一个选项字符串。对应到命令行就是-a ,-b ,-c ,-d, -e 。冒号又是什么呢? 冒号表示参数,一个冒号就表示这个选项后面必须带有参数(没有带参数会报错哦),但是这个参数可以和选项连在一起写,也可以用空格隔开,比如-a123 和-a 123(中间有空格) 都表示123是-a的参数;...转载 2018-11-12 11:10:06 · 295 阅读 · 0 评论 -
四种类型转换(cast)的关键字 详解 及 代码
点击打开链接reinterpret_cast用在任意指针(或引用)类型之间的转换;以及指针与足够大的整数类型之间的转换;从整数类型(包括枚举类型)到指针类型,无视大小。...转载 2018-04-24 08:29:25 · 976 阅读 · 0 评论 -
移动构造、左值右值、虚析构函数、构造函数不能为虚函数
1、移动构造---源对象资源的控制权全部交给目标对象 什么时候该触发移动构造呢? 如果临时对象即将消亡,并且它里面的资源是需要被再利用的,这个时候我们就可以触发移动构造。复制构造和移动构造的差别: 这种情况下,我们觉得这个临时对象完成了复制构造后,就不需要它了,我们就没有必要去首先产生一个副本,然后析构这个临时对象,这样费两遍事,又占用内存空间,所幸将临时对象它的原本的资源直接转...原创 2018-04-14 10:10:18 · 229 阅读 · 0 评论 -
Visual Studio中检测内存泄漏的方法
Visual Studio中检测内存泄漏的方法#include <iostream> //可以定位到发生内存泄露 所在的文件和具体那一行,用于检测 malloc 分配的内存 #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> //把分配内存的信息保存...转载 2018-04-23 21:36:23 · 731 阅读 · 0 评论 -
“浅拷贝”与“深拷贝”
点击打开链接转载 2018-04-23 20:26:22 · 107 阅读 · 0 评论 -
c++之this指针详解
c++之this指针详解转载 2018-04-23 20:06:14 · 129 阅读 · 0 评论 -
C++实现回调
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。#include <iostream>#include <stdio.h>#include <std...原创 2018-04-12 21:46:03 · 758 阅读 · 0 评论 -
信号和槽
1、信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。信号和槽是QT自行定义的一种通信机制。2、moc(Meta ObjectCompiler)QT工具:该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。3、当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信...原创 2018-04-12 19:38:20 · 1136 阅读 · 0 评论 -
new/delete和malloc/free、指针和引用、strlen和sizeof、C和C++区别、面向对象和面向过程
1、new和malloc的区别对于自定义类型: new会先调用operator new函数,申请足够的内存(通常底层使用malloc实现)。然后调用类型的构造函数,初始化成员 变量,最后返回自定义类型指针。delete先调用析构函数,然后调用operator delete函数释放内存(通常底层使用free实现)。 malloc/free是库函数,只能动态的申请和释放内存,无法强制要求其做自定义类...原创 2018-04-15 19:59:51 · 246 阅读 · 0 评论 -
sscanf-从一个字符串中读进与指定格式相符的数据
1、函数原型 int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... );sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。2、常用类型举例1. 常见用法。 cha...原创 2018-04-01 21:47:44 · 207 阅读 · 0 评论 -
字符串流stringstream的使用
1、简单输入输出#include<sstream>#include<iostream>using namespace std;int main(){ string line, word; cout << "输入字符串:"; while (getline(cin, line)) { stringstream stream(line); co...原创 2018-04-01 21:36:27 · 627 阅读 · 0 评论 -
malloc的原理
1、malloc实现在malloc分配空间时是在Heap上分配的,实质上,Linux维护一个break指针,这个指针指向堆空间的某个地址。从堆起始地址到break之间的地址空间为映射好的,可以供进程访问;而从break往上,是未映射的地址空间,如果访问这段空间则程序会报错。要增加一个进程实际的可用堆大小,就需要将break指针向高地址移动。Linux通过brk和sbrk系统调用操作break指针。...原创 2018-04-02 10:00:25 · 407 阅读 · 0 评论 -
C/C++积累
1、C库函数:calloc()C 库函数 void *calloc(size_t nitems, size_t size) 分配所需的内存空间,并返回一个指向它的指针。malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。void *calloc(size_t nitems, size_t size)nitems --...原创 2018-11-22 09:02:05 · 143 阅读 · 0 评论