c++
文章平均质量分 71
so_u
May the odds be ever in your favor
展开
-
C++知识点---命名空间、缺省参数、重载
更多知识点请点链接:C++知识点目录索引 1.什么是C++?C++延续了C语言的语法使用,在其基础上又增加了自己的特性对于C++而言,可以进行过程化的设计,也可以根据抽象数据类型的特点,将其认为是某一对象,基于这种对象进行程序设计2. C++与C语言的差异数据类型:从基本数据类型来看,C++增加了逻辑型bool;从自定义类型来看,C++增加了类关键字:C语言的关键...原创 2018-03-18 17:35:21 · 424 阅读 · 0 评论 -
C++异常捕获和处理
0. 写在前面 异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个错误,返回退出码或者终止程序等等,此时我们只知道有错误,但不能更清楚的知道哪种错误,因此,使用异常,就把错误和处理分开来,由库函数抛出异常,由调用者捕获这个异常,调用者就可以知道程序函数库调用出现错误了,并去处理,而是否终止程序就把握在调用者手...原创 2018-05-14 16:13:32 · 32791 阅读 · 1 评论 -
C++:继承和多态的对象模型
更多C++知识:c++目录索引前言之前两篇博客梳理了继承和多态基本的知识点,下来总结一下C++的对象模型;前两篇博客中提到的继承有单继承,多继承,菱形继承,虚继承,虚基表,虚函数,多态等概念,对于这些继承和多态的对象模型,我们逐步进行深究,在深究之前,先来熟悉一下虚函数表虚函数表1. 概念虚函数表是一种数据结构,其为指针数组,数组当中存放的是虚函数的地址(注:不是真...原创 2018-04-29 14:25:45 · 303 阅读 · 1 评论 -
面试题:类和继承
更多c++知识:c++目录索引1. 实现一个不能被继承的类 思路: 子类继承父类,子类的构造函数就是合成的;当子类创建对象时,先调用父类的构造函数,在调用自己的构造函数,故此不能继承,将父类的构造函数设为私有成员,这样子类就不能访问,不能创建对象,因此也就不能继承代码:class AA{public: static AA* GetObject() { retu原创 2018-04-23 17:11:31 · 313 阅读 · 0 评论 -
C++:智能指针及其实现原理
1. RAII思想定义一个类来封装资源的分配与释放,构造函数中完成资源的分配及初始化;析构函数中完成资源的清理,可以保证资源的正确初始化和释放如果对象是用声明的方式在栈上创建局部对象,那么RAII机制就会正常工作,当离开作用域对象会自动销毁而调用析构函数释放资源。2. 智能指针的特点具有 RAII的思想向指针一样,可以使其指向对象成员,并且重载了 * 和 -> 运算...原创 2018-05-25 10:44:58 · 5506 阅读 · 1 评论 -
C++:强制类型转换
1. C语言中的几种强制类型转换 C语言的强制类型转换不做解释,直接上代码://c语言void TestC(){ int i = 1; double d = i;//相近类型的隐式类型转换(1) int* p = &i; //int j = p;//不是相近类型,不支持隐式类型转换,一个指针,一个大小 int j = (int)p;/...原创 2018-06-16 15:41:02 · 335 阅读 · 0 评论 -
STL -------- 全排列算法非递归
全排列: 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。思路: 全排列思想主要分为三部分: 1. 从右向左找出第一对右大于左的字符对 2. 从右向左找第一个大于左边字符大的字符,进行交换 3. 找出需要逆置的区间下面看一个例子:字符串为1...原创 2018-06-29 15:53:05 · 317 阅读 · 1 评论 -
STL------List与迭代器的实现
1. List List是STL库(标准模板库)中的一个容器。它的实质上就是一个双向带头循环链表,这样的设计有以下几个优点: 随机插入数据时,不用遍历链表,去找某一特定位置 尾插时,只需head->prev就可找到,提高了效率 在链表中删除数据时,也只需给出迭代器的位置即可,不需遍历链表找 到其前一个,或者采用替换删除的方法删除节点 2...原创 2018-06-19 21:41:00 · 826 阅读 · 0 评论 -
STL------容器与迭代器
声明:1、本博文主要整理自《C++ Primer》和《STL源码剖析》这两本经典书籍。同时,也参考了网络中不少优秀博客,对这些博客的作者表示感谢。2、由于博主能力有限,对于一些容器的用法可能尚未进行深入研究。因此,本博文若有错误和不足之处,欢迎大家批评指正。3、本博文仅作学术交流只用,无任何其他用途。言归正传,下面开始介绍C++中的STL容...转载 2018-06-19 21:45:28 · 235 阅读 · 0 评论 -
C++:模板
1. 什么是模板? 1. 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函 数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数 返回值取得任意类型。 2. 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 2. 模板的好处 可...原创 2018-05-17 09:40:09 · 247 阅读 · 0 评论 -
c++知识点----深浅拷贝
更多C++知识点:C++目录索引浅拷贝概念:浅拷贝也称位拷贝,是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。浅拷贝的问题当多个对象共用同一块内存,某一对象使用完毕后会进行析构,其他对象再次使用这块空间,发生非法访问多个对象,必定析构多次,但只有一块内存,导致非法析构 注意 当在一个自定义的类中,没有...原创 2018-04-24 08:56:40 · 298 阅读 · 0 评论 -
C++知识点---引用
更多知识点请点击链接:C++知识点目录索引1. 引用引用是给一个已经定义过的变量重新起的别名,对其操作时相当于对变量直接进行操作;与指针表示方法类似,指针为 int* a;,引用为 int a=10;int& b=a;2. 引用的特点一个变量可取多个别名引用必须初始化,指明所取别名的对象没有定义变量,只是给定义过的变量取了一个别名一个引用只能初始化一个变量...原创 2018-03-21 15:46:44 · 352 阅读 · 0 评论 -
C++知识点---类和对象
更多知识点请点击:C++知识点目录索引1. 类和对象类:和结构体类似,存在数据(变量),还有方法(函数),即类包含成员变量和成员函数对象:类的实例,将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。2. 类和对象的特点类:具有封装性,将变量和函数封装到类当中,类的访问限定符(public、private、protected)体现...原创 2018-03-21 16:41:11 · 490 阅读 · 1 评论 -
C++目录索引
c++:类和对象,默认成员函数c++:指针和引用c++:命名空间,缺省参数,重载c++:const&&内联函数&&友元函数&原创 2018-03-28 16:32:17 · 1076 阅读 · 0 评论 -
C++知识点----继承
更多C++知识:c++目录索引1. 继承1.1 继承概念 继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享共有的东西,实现自己本质的东西。1. 2 访问限定符 && 继承关系 private(私有):从字面上来看,私有属于个人的,不会让其他人使用;那么在父类里,成员为私有限定,意味着不管是什么继承,这个成员就是不让你看...原创 2018-04-16 18:05:27 · 495 阅读 · 0 评论 -
C++知识点---const&&内联函数&&友元函数&&static&&N中拷贝构造的优化
更多知识点请点击链接:C++知识点目录索引1. const关键字constconst使用规则: const修饰变量,变量具有常属性,不可改 const修饰指针: ① const int* p; 指针指向内容不可修改 ② int* const p; 指针不可修改 ③ const int* const p; 指针和指向的内容都不可修改...原创 2018-03-28 20:53:50 · 603 阅读 · 3 评论 -
C++实现顺序表和链表
更多C++知识:c++目录索引顺序表:Vector.h#pragma oncetypedef int DataType;class Vector{public: Vector();//构造 Vector( const Vector& v);//拷贝构造 Vector& operator=(const Vector& v...原创 2018-04-22 13:24:07 · 426 阅读 · 0 评论 -
C++知识点:虚函数、多态
更多知识点:C++知识点目录索引接上一篇的c++知识点–继承虚函数概念虚函数是指类的成员函数前加上virtual 关键字,此成员函数称之为虚函数虚函数的作用子类和父类的虚函数构成重写,可实现多态虚函数重写上一篇继承中提到重写的概念,当子类和父类定义了一个和父类完全相同的虚函数,则称子类的虚函数重写(覆盖)了父类的虚函数;特殊情况:协变也可构成重写(注:协变...原创 2018-04-29 11:11:52 · 386 阅读 · 0 评论 -
面试题:C语言实现继承和多态
更多C++知识:C++目录索引 题目:利用C语言实现C++里面的继承和多态特性先来看看C++里面的继承和多态:代码:class A{public: virtual void fun() { printf("A::fun()\n"); } int _a;};class B :public A//B继承A{pu...原创 2018-04-23 17:41:48 · 440 阅读 · 0 评论 -
windows下配置gtest及实例
1. 安装gtest2. 配置工程3. 进行单元测试1. 安装gtest 将gtest压缩文件下载放到指定位置,进行解压缩,可看到如下结果;安装源码:https://github.com/smarr/googletest2. 配置工程将gtest的头文件添加到工程 项目属性 ——— C/C++常规——–附加包含目录———编辑———添加头文件...原创 2018-07-10 16:40:19 · 8368 阅读 · 4 评论