自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (4)
  • 收藏
  • 关注

转载 C++11 之 override

转自:https://www.cnblogs.com/xinxue/p/5471708.html1 公有继承 公有继承包含两部分:一是"函数接口"(interface),二是"函数实现"(implementation) 如 Shape 类中,三个成员函数,对应三种继承方式:class Shape {public: virtual void Draw() const = 0; // 1) 纯虚函数 virtual void Error(const ...

2020-06-14 10:36:37 1792

转载 gamma原理及快速实现算法(C/C++)

转自: https://blog.csdn.net/lxy201700/article/details/24929013 参考http://www.cambridgeincolour.com/tutorials/gamma-correction.htmhttp://en.wikipedia.org/wiki/Gamma_correction论文Gamma矫正的快速算法以及其C语...

2018-10-23 18:22:10 3434

转载 OpenCV 在visual studio2015 中的配置

一、准备工作:1.下载OpenCV安装包:    到OpenCV的官网(http://opencv.org/)下载最新版本的OpenCV安装包,由于OpenCV针对不同平台都有安装程序,所以我们只需要根据当前开发环境选择合适的平台版本即可,这里我们是在win7 64bit操作系统下进行开发,所以应该下载OpenCV for Windows:    我们选择了当前的最新版本3.1,下...

2018-08-21 12:57:48 7407

转载 [转载] Android中adb shell dumpsys相关命令

很多时候,我们也会时不时的使用adb shell dumpsys相关命令,比如: 查看Activity的相关信息(输入包名则查看具体包名的Activity信息):adb shell dumpsys activity [包名]1查看battery相关信息(输入包名则查看具体包名的battery信息):adb shell dumpsys batterystats [包名]1查看Location相关信息...

2018-05-30 16:18:52 1412

原创 第五十节 C++ STL 位标志 - bitset类

std::bitset是STL的一个类,主要用于处理位和位标志的信息,但std::bitset不是容器类,它不能调整其长度,故他是一个实用类。在编译阶段就确定了其长度,后期不可变,为了克服bitset这一缺点,可使用 vector <bool>, 它可动态调整长度。#include <iostream>#include <vector>#include &l...

2018-05-01 20:49:55 550 1

原创 第四十九节 C++ STL 自适应容器 - 栈和队列 stack queue

栈和队列跟其他容器类似,但栈和队列受一定的限制。stack:1 后进先出,只能从栈顶插入和删除数据2 头文件 #include <stack>queue:1 先进先出,从队尾插入元素,从队首删除元素2 #include <queue>priority_queue:1 #include <queue>2 可使用谓词,改变规则#include <iostrea...

2018-05-01 18:12:51 349

原创 第四十八节 C++ STL 算法

STL算法:1 头文件 #include <algorithm>2 算法通常与迭代器和函数对象一起使用仅举几个例子。#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;/*1 函数模板:为了打...

2018-05-01 17:33:02 259

原创 第四十七节 C++ 匿名函数对象 - lambda 表达式

函数对象:函数的对象, 实现operator(), 常用于算法中。详见上一节函数对象的讲解lambda表达式属于函数对象,但其是匿名的。分为:1 一元函数的lambda表达式(不使用捕获列表,使用捕获列表)2 一元谓词的lambda表达式 (不使用捕获列表,使用捕获列表)3 二元函数的lambda表达式(不使用捕获列表,使用捕获列表)4 二元谓词的lambda表达式 (不使用捕获列表,使用捕获列表...

2018-05-01 15:50:29 2186 1

原创 第四十六节 C++ 函数对象 -用于STL的算法中

函数对象: 常用于标准模板库STL的算法1. 定义上为函数的对象;2. 实现上是实现了operator()的类的对象;常用的函数对象可分为多种:1 一元函数:输入为1个参数2 二元函数:输入为2个参数3 带变量的一元函数:输入为1个参数,且类内有属性成员4 带变量的二元函数:输入为2个参数,且类内有属性成员5 一元谓词:输入为1个参数,返回值为bool变量6 一元谓词:输入为5个参数,返回值为bo...

2018-05-01 14:27:52 251

原创 第四十五节 C++ STL(标准模板库)-映射类std::map std::multimap std::unordered_map std::unordered_multimap

map的操作与set类似,操作可参考上一节,这里仅介绍基本操作映射类: 为key-value(键-值)对容器, 支持根据key查找value, 如根据int可查找对应的stringstd::map: 存储唯一的键, 默认从小到大排序std::mulitmap: 可存储重复的键 , 默认从小到大排序 std::unordered_map: 用散列函数排序,键唯一 std::unordered_mul...

2018-05-01 12:10:20 723

原创 第四十四节 C++ STL(标准模板库)-集合类std::set std::multiset std::unordered_set std::unordered_multiset

集合用途:用于频繁而快速的搜索,存入集合的内容会进行排序,所以查找速度快,复杂度为对数std::set:存储的元素唯一, 不重复,默认我从小到大的排序std::multiset:存储的元素可重复,默认我从小到大的排序std::unordered_set:散列集合,使用散列函数计算唯一索引,并根据索引决定将元素放入哪个bucket(桶),#include <iostream> #...

2018-04-30 22:55:12 689

原创 第四十三节 C++ STL(标准模板库)- list(双向链表)和 forward_list(单向链表)

std::list 双向链表:1 头文件 #include <list>2 list是一系列节点,每个节点指向前一个节点和下一个节点3 插入元素的时间固定,不管在list的开头,中间,还是结尾4 含有多个重载构造函数,故存在多种具体化对象的方式std::forward_list 单向链表1 头文件 #include <forward_list>2 只允许沿一个方向遍历,智能...

2018-04-30 16:18:47 1008

原创 第四十二节 C++ STL(标准模板库)- 动态数组类 vector 和 deque

STL vector是模板类(它是一个模板,使用方法跟模板类似),具有:1. 数组大小是动态可变的2. 在末尾插入数据的时间的固定的,跟数组的大小没关系3. 在数组中间添加或删除元素所需要的时间,跟该元素后面的元素个数成正比4. 头文件 #include <vector>5. 在数组末尾添加元素:用成员方法push_back()6. 在数组末尾删除元素:用成员方法pop_back()7...

2018-04-30 10:41:40 382

原创 第四十一节 C++ STL(标准模板库)- string 类

string类是STL(标准模板库)向程序员提供了用于字符串处理的操作的容器类string。1 string可根据存储的内容,动态调整大小2 string类提供了其他的辅助函数(算法/方法),复制,链接,截短,查找字符或字符串,反转,大小写转换,删除等3 头文件<string>4 string提供了多个重载构造函数,因此在可以用多种方式构造string对象代码分三部分: 1 实例化对象...

2018-04-29 13:46:13 378

转载 VassistX的简单介绍与下载安装

VassistX的简单介绍与下载安装简单介绍VassistX的全称是Visual Assist X,是whole tomato开发的一个非常好用的插件,可用于VC6.0及Visual Studio的各个版本(包括VS.NET2002、VS.NET2003、VS2005、VS2008、VS2010、VS2012、VS2013及VS2015)。VassistX有以下主要功能: 智能提示:关键字的提示,...

2018-04-26 12:25:12 22035 1

原创 第四十节 C++ 宏和模板详解

宏定义是在预编译时,将宏在引用出展开,所以使用宏定义时,一定要结合小阔号一起使用。宏的用法: 1 使用宏定义常量: #define NAME_NUM 60; #define NAME "tom" ;                 2 使用宏定义函数(注意结合括号)                 3 使用宏避免多次包含头文件                 #ifndef _HUMAN_H_#...

2018-04-25 21:58:04 989

转载 visual Assist 快捷键大全

Alt + Shift + S(symbol):方便你寻找某个对象或变量等等。Find Symbol Dialog打开查找符号对话框Alt + Shift + F (References):References 打开所有引用的地方Alt + Shift + O:  打开解决方案下file listAlt + M(methods )  : 打开文件的方法列表     ListMethodsInCur...

2018-04-25 17:35:33 11656

转载 visual studio 使用技巧总结(含快捷键)

1. 使用CTRL+;搜索解决方案资源管理器    点击解决方案资源管理器的文本框(或者使用快捷键”CTRL+;”),来搜索所有的节点——无论是隐藏的还是可视的。即使折叠的很深,也可以搜索到。直到你清空搜索框之前,搜索结果会一直保留。2. 通过CTRL+Q快速打开如果有什么功能是每个人应该用,但是实际上没人去用的话,应该就是快速打开了。一般来说,我们都是使用菜单寻找一个功能,比如打开工具……选项…...

2018-04-24 14:54:43 31622 4

原创 第三十九节 C++ 类型转换运算符 static_cast, dynamic_cast, reinterpret_cast, const_cast

C++类型转换运算符:static_cast, dynamic_cast, reinterpret_cast, const_cast使用格式: dest_type result = cast_type<dest_type> (objest_to_be_casted)static_cast:  用途1: 在继承中,在编译阶段检查转换类型是否相关,若不相关,编译失败,可用于继承类的向上转换...

2018-04-16 19:03:53 305

原创 第三十八节 C++ 运算符重载 - 双目运算符

#include <iostream>using namespace std;/* 运算符重载 -- 双目运算符 a+b, a+=b, a==b, a<b... * 格式: * 1 全局函数或静态成员函数: return_type operator symbol(param1,param2 * 2 类成员: return_type operator symbol(...

2018-04-16 17:00:55 2886

原创 第三十七节 C++ 运算符重载 - 单目运算符

#include <iostream>using namespace std;/*运算符重载 -- 单目运算符 ++, --, *, -> 格式: return_type operator symbol(params list...) */class Base {private: unsigned int numBase;public: /*operat...

2018-04-16 16:35:15 561

原创 第三十六节 C++ 菱形问题的解决 -- 虚继承

菱形问题:三个派生类同时继承一个基类,又存在另一个派生类同时继承这三个派生类。这将导致创建三个基类对象(calss One),当我们通过Three去调用One的函数实现时, 将出现错误,编译器不知道调用哪个One的函数,这将是我们不愿意发生的。#include <iostream>using namespace std;class One {public: One() { c...

2018-04-16 13:18:59 1591

原创 第三十五节 C++ 抽象基类和纯虚函数

#include <iostream>using namespace std;/* 抽象基类:不能被实例化的基类。 它仅仅只有一个用途,用来派生出其他类。 * 1. 要定义抽象基类,可使用纯虚函数,纯虚函数可当做接口使用 * 2. 基类的纯虚函数,在派生类中必须实现。 虚函数可以不用必须实现 *//*定义抽象基类*/class BaseClass {public:...

2018-04-16 13:07:30 508 2

原创 第三十四节 C++ 多态原理与虚函数表

多态: 将派生类对象视为基类对象,执行派生类对象的操作, 可用virtual实现多态。下面代码存在两个问题:#include <iostream>using namespace std;/* 这段代码将存在两个严重问题: * 1. 当在函数VerityWhitchClass()传入一个对象时,我们希望它执行被传入对象的方法,但这里执行了基类的方法 * 2. 当delete传入...

2018-04-13 17:11:04 202

原创 第三十三节 C++ 继承之对象的构造顺序与析构顺序

#include <iostream>using namespace std;/*对象的构造顺序:* 1:没有继承关系时: 先属性后构造(构造函数)* 2:有继承关系时: 先基类后子类,先属性后构造(构造函数)* 3 : 对象析构与构造循序正好相反 *///定义class Member:为了检验类属性和构造函数的先后顺序class MemberPerson {pu...

2018-04-08 18:52:26 289

原创 第三十二节 C++ 继承之基类的成员函数在派生类中被隐藏

#include <iostream>using namespace std;/*假设基类中函数被重载,当派生类覆盖基类的成员函数时,会隐藏到基类的其他的重载函数* 注:应该尽量避免隐藏基类的成员函数*/class Person {protected: //只能在派生类内部访问protected成员,外部不可访问 bool man;public: // public权...

2018-04-08 18:42:46 1920

原创 第三十一节 C++ 继承之如何在派生类中调用基类被覆盖的函数成员(方法)

#include <iostream>using namespace std;/*有些基类的方法在派生类被覆盖,但有时我们需要调用基类的方法。* 这里提供了两种方式去调用基类被覆盖的方法(均使用作用域解析运算符::)。* 1: 直接在派生类中调用被覆盖的基类方法,如 Person::CheckPerson() ;* 2: 使用派生类对象调用被覆盖的基类方法,如 Tom.P...

2018-04-08 18:21:55 6225 2

原创 第三十节 C++ 继承之覆盖基类的成员函数(方法)

#include <iostream>using namespace std;/*在派生类中可以覆盖基类的方法,(调用派生类对象时,只运行派生类实现的函数,而不运行基类实现的函数)* 只要在派生类中重新命名一个跟基类成员函数一样的名字及参数就可以覆盖基类方法**/class Person {protected: //只能在派生类内部访问protected成员,外部不可访...

2018-04-08 18:12:01 2009

原创 第二十九节 C++ 继承之向基类传递参数

#include <iostream>using namespace std;/*有时,基类存在重载的构造函数,而搞造函数对类的数据成员进行了初始化,* 这种情况下,在继承基类时,需要对基类的数据成员进行初始化 **/class Person {protected: //只能在派生类内部访问protected成员,外部不可访问 bool man;public: //...

2018-04-08 17:40:53 2986

原创 第二十八节 C++ 继承之基础

#include <iostream>using namespace std;/*类的继承: 派生类,可根据访问限定符(public,private,protected)访问基类的属性和方法* 使用继承的方式,可以抽象多个对象公共部分,并复用代码*/class Person {public: //1: public权限,可被派生类访问 bool man; void C...

2018-04-08 17:15:51 151

原创 第二十七节 C++ 友元类与友元函数

/* Human.h */#include <string> /* class定义的private数据成员和方法,不能被外部访问,但可以被友元函数和友元类访问 * 友元函数:在类中使用friend可将函数声明为友元函数,友元类可访问类的私有数据和方法 * 友元类:在类中使用friend可将另一个声明为友元类,友元类可访问类的私有数据和方法 */class Hum...

2018-04-06 20:52:19 242

原创 第二十六节 class 与 struct的默认权限区别

/* class和struct最大的区别:默认权限不同 * class:成员的默认权限是private * struct:成员默认权限为public, 继承也默认为public继承*/class Human { char* name; //默认为private成员 int age; Human(const char* initString); //默认为private成员 ...

2018-04-06 20:17:57 3383

原创 第二十五节 C++ 类和对象的关键字sizeof()

/* Human.h */#include <string> /** 类的大小取决于类的数据成员大小,函数成员和函数成员的局部变量不占空间*/class Human{private: char* name; //指针占4个字节 int age; //int占4个字节 bool man; //占一个字节,但这里会按照4个字节填充public: Huma...

2018-04-06 20:00:28 232

原创 第二十四节 C++ this关键字

/* Human.h */#include <string> /* * this指当前对象的地址 */class Human{private: char* name; public: Human(const char* initString); //变量若不允许函数修改,最好定义成const变量 ~Human(); void getObjNam...

2018-04-06 18:01:42 200

原创 第二十三节 C++ 如何禁止在栈中实例化类

有时需要在堆中创建对象,禁止在栈中去创建,1 可以将析构函数定义为private成员2 建立static函数成员去delete这个堆空间/* Human.h */#include <string> /* * 为了禁止某些类在栈中创建,措施之一是将析构函数定义为private * 这样在函数使用完对象,并对其销毁时将出现错误,因为不能在外部调用析构函数 * 这种方式,堆内...

2018-04-06 16:05:39 856

原创 第二十二节 C++ private,static和构造函数实现单例模式

/* Human.h */#include <string> /*这里使用了static关键字:* static用于类的数据成员时,该数据成员在所有对象之间共享* static用于在函数内部声明局部变量时,该变量的值两次调用之间,值不变* static用于成员函数时,该函数在所有成员之间共享*//*构造函数,复制构造函数,赋值操作符,都声明为private成员,保证...

2018-04-06 14:06:15 1292

原创 第二十一节 C++ - 复制构造函数(浅复制,深复制)

例子1: 不带指针成员的类,此例子,为了看是否产生临时对象(浅复制,按值传递)#include <string>/*此类中没有指针成员*/class Human{private: std::string name;/*public类外可访问*/public: void getPersonName(); Human(std::string input); ~Hum...

2018-03-28 18:01:12 233

原创 第二十节 C++- 析构函数的使用及调用

析构函数是类的一种特殊函数,只有在对象被销毁时才被调用,在析构函数内,可以对堆内存进行释放,如new(构造函数),delete(析构函数)。构造函数可以有多个(重载),而析构函数只有一个(不能对析构函数进行重载)。如果忘记实现析构函数,编译器会自动生成一个伪析构函数(空函数),从下面代码,可以看出析构函数的使用及调用顺序。/*Human.h*/#include <string>c...

2018-03-28 17:13:42 9524 1

原创 vimrc配置

set mouse=aset nuset ts=4syntax onset autoindentset cursorlineset ignorecaseset hls"""""""""""""""""""""""""""&q

2018-03-28 13:25:19 333

原创 Source Insight快捷键大全

附: Source Insight快捷键大全退出程序 : Alt+F4重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行 : Ctrl+K恰好复制该位置右边的该行的字符 : Ctrl+Shift+K复制到剪贴板 : Ctrl+Del剪切一行 : Ctrl+U剪切该位置右边的该行的字符 : Ctrl+;剪切到剪贴板 : Ctrl+Shift+X剪切一个字 : Ctrl+,左...

2018-03-28 10:33:23 366

C++语言的设计和演化

C++语言的设计和演化

2017-07-09

C++精粹 ,一本不错的书

《C++精粹》(C++ Distilled)是计算机类书籍中的名著之一,作者是Ira Pohl。该书如同一张通往C++编程精髓的简明地图,同时也是一本编程风格规范的指南。

2017-07-09

HMDI中文详解

HMDI中文详解

2017-02-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除