帅气 C++
文章平均质量分 59
主要分享在学习C++过程中的一些基础知识和语法知识
TheShyclear
欲戴皇冠,必承其重
展开
-
C++ 11 Lambda表达式
C++ 11的几大新特性为:引入了lambda表达式;改进了智能指针......。利用Lambda表达式,更方便的定义和创建匿名函数。这项新功能的添加同样也是用来缩短了(调用代码)距离,简洁,效率,功能性都有提升,下面详细介绍。C++声明Lambda表达式[ capture list ] ( params list ) mutable exception -> return t...原创 2019-01-16 17:28:32 · 486 阅读 · 0 评论 -
C++构造函数 初始化列表 的神秘之处
首先了解类对象的构造顺序是怎样的:1.分配内存,调用构造函数时,隐式/显式的初始化个数据成员(构造函数列表的初始化方式不是按照列表的顺序,而是按照变量声明的顺序同时初始化显隐 数据成员);2.进入构造函数后在构造函数中执行一般赋值与计算。使用初始化列表的原因: 一:只能使用初始化列表 1.初始化 const 修饰的类成员(常变量) 或 初始化引用成员数据;(因为这些...原创 2019-01-14 22:04:30 · 230 阅读 · 0 评论 -
C++ 11 --智能指针
为什么会出现智能指针?? 在编写C++程序代码的过程中,往往都会涉及到堆内存的开辟和释放,使用new和delete关键字,特别是堆内存上的释放是通过程序员手动完成的,它不像栈内存上,只要生存周期结束了即可由系统自动回收。 但是很多粗心的程序员,由于各种情况可能忘记手动释放堆内存或因为一些细节原因而未进行堆内存的释放,最终导致产生大量的内存泄漏,造成资源浪费,因此智能指针出来了。什么...原创 2019-01-13 21:02:39 · 247 阅读 · 0 评论 -
设计模式——单例模式
简介: 单例模式是一种常用的软件设计模式,其定义是单例对象的类 只允许一个实例存在。许多时间我们系统只需要拥有一个全局对象,这样有利于我们协调系统的整体的行为。单例模式(Singletion) 保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。基本实现思路: 单例模式要求类能够有返回对象的一个接口 和 一个获得该实例的接口(静态方法)①,该类的构造方法定义...原创 2018-11-24 11:45:08 · 149 阅读 · 0 评论 -
详谈const 与指针 引用 (二)
const修饰的对象不能变!!!一:const与一级指针int* p1 = &a; int * q1 = &a const int *p2 = &a const int * q2 = &a int * const p3 = &a int* const q3 =&a 使用情况判断:一组:p1 = q1 ...原创 2018-11-13 16:06:25 · 106 阅读 · 0 评论 -
C++ ——函数调用栈 解析
这篇博客,我们来了解一下函数是如何传参?,函数返回值 如何返回?,以及他们的栈帧的开辟。首先我们先来看一个简单的函数调用。int fun(int a,int b){ return a+b;}int main(){ int a = fun(10,20); return 0;}将汇编代码执行到函数调用的地方查看函数调用参数带入的指令。int m...原创 2018-11-07 15:57:00 · 2000 阅读 · 0 评论 -
C++ STL库 泛型算法 find 和 find_if
一:find()函数函数原型:template<class _InIt, class _Ty> _NODISCARD inline _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val _DEBUG_RANGE(_First, _La...原创 2018-11-03 14:38:08 · 880 阅读 · 0 评论 -
C++ STL库—— 基础泛型算法copy
copy 函数原型:template<class _InIt, class _OutIt> inline _OutIt copy(_InIt _First, _InIt _Last, _OutIt _Dest) { // copy [_First, _Last) to [_Dest, ...) _DEPRECATE_UNCHECKED(copy, _Dest)...原创 2018-11-03 13:48:14 · 532 阅读 · 0 评论 -
详细了解C++多态
什么是多态??1.多态性(polymorphism)据说最早来自希腊语,从字面上理解就是多种形态,多种形式。具体到C++这种面向对象的语言(OOP)中,其实就是一种“接口”,多种实现(方法)。2.多态可以分为静多态和动多态,具体的分类如下:3.静多态和动多态的区别:其实只是区别什么时间将函数实现和函数调用关联起来,是在编译期还是在运行期,即函数地址是在早绑定还是晚绑定的??...原创 2018-10-30 19:28:12 · 2911 阅读 · 2 评论 -
C++中的写时拷贝技术
一:概念解释 当我们在构造一个对象时,我们需要把所有的成员变量和成员方法都要统统的给这个对象构造出来,那么如果这个对象我们别不需要对它进行读取和修改的操作,那么我们是不是可以采用一种写时拷贝技术来减少内存的消耗?二:代码分析#include<iostream>using namespace std;#include<string>class CStri...原创 2018-09-29 15:54:14 · 275 阅读 · 0 评论 -
C++ 中等号运算符的重载(一)
一:存在的原因 在系统的基础基本类型中,比如int , double等,我们定义一个变量,它 的赋值操作可以直接用=来计算int a ;int b = 10;a = b;//可以直接用=来操作 但是在C++中,对类对象进行操作时,我们就不能只是简简单单地,对类对象用=进行操作。当我们没有自己设计等号运算符的重载函数,编译器会自动生成一个浅拷贝的赋...原创 2018-09-20 09:20:49 · 21782 阅读 · 2 评论 -
C++ --------inline关键字
1.inline函数简介:定义:由inline关键字来定义 引用的原因:用他来代替C中复杂易错不用维护的宏函数。 2.编译器对inline函数的处理方法 编译器是在编译阶段对inline函数作出处理,将调用动作替换为函数的本体,但是他只是一种建议,编译器可做可不做。其逻辑处理方式一般采取如下措施:1.将inline函数体复制到inline函数的调用点处,...原创 2018-09-06 22:13:19 · 266 阅读 · 0 评论 -
C++类对象——拷贝构造函数
一:什么是拷贝构造函数? 顾名思义拷贝构造就是先拷贝一个已经存在的对象,然后构造另一个对象。 用来复制对象的,在使用这个对象的示例来初始化这个对象的一个新的示例。二:为什么要用到拷贝构造函数? 通俗易懂地来说就是为了来定义初始化一个与已经存在的对象相同的对象,但是这里要注意:他们所获得的资源不同!我们在C中用一个已经存在的变量去初始化另一个变量是:int a = b;那么应...原创 2018-08-12 12:00:17 · 2213 阅读 · 0 评论 -
C和C++——动态数组的申请
这里呢我们主要是针对二维数组的动态申请,而进行的讲解,我们可以做到随时申请,随时释放。下面我将代码分为三部分:1.空间(数组)申请函数2.空间(数组)释放函数3.数组输出函数./*制作题目:动态开辟数组制作时间:2018-7-20制作人 :TheShyclear内容信息:1.采用C中的malloc / free 实现一维二维数组的动态开辟2.采用...原创 2018-07-20 20:07:59 · 10472 阅读 · 0 评论