<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cherishinging的博客]]></title><description><![CDATA[记录c/c++/linux相关学习笔记]]></description><link>https://blog.youkuaiyun.com/cherishinging</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cherishinging]]></copyright><item><title><![CDATA[C++复习之哪些函数不能声明为虚函数]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/81333484</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/81333484</guid><author>cherishinging</author><pubDate>Wed, 01 Aug 2018 16:39:31 +0800</pubDate><description><![CDATA[什么样的函数不能声明为虚函数？1）不能被继承的函数。2）不能被重写的函数。



1. 普通函数

普通函数不属于成员函数，是不能被继承的。普通函数只能被重载，不能被重写，因此声明为虚函数没有意义。因为编译器会在编译时绑定函数。



2.友元函数

友元函数不属于类的成员函数，不能被继承。对于没有继承特性的函数没有虚函数的说法。



3.构造函数

首先说下什么是构造函数，构造函数是用来初始化...]]></description><category></category></item><item><title><![CDATA[C++复习之explicit关键字]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/81297339</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/81297339</guid><author>cherishinging</author><pubDate>Tue, 31 Jul 2018 10:17:39 +0800</pubDate><description><![CDATA[首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).

那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:



class CxString  // 没有使用explicit关键字的类声...]]></description><category></category></item><item><title><![CDATA[C++复习之RII]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/81295200</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/81295200</guid><author>cherishinging</author><pubDate>Tue, 31 Jul 2018 08:03:01 +0800</pubDate><description><![CDATA[1、什么是 RAII 技术

RAII（Resource Acquisition Is Initialization）是一种利用对象生命周期来控制程序资源（如内存、文件句柄、网络连接、互斥量等等）的简单技术。  
　　RAII 的一般做法是这样的：在对象构造时获取资源，接着控制对资源的访问使之在对象的生命周期内始终保持有效，最后在对象析构的时候释放资源。借此，我们实际上把管理一份资源的责任托管给了...]]></description><category></category></item><item><title><![CDATA[c++复习之语法特性::函数重写（override）、函数定义、函数重载与协变返回类型（covariant return type）]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/81282504</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/81282504</guid><author>cherishinging</author><pubDate>Mon, 30 Jul 2018 11:44:13 +0800</pubDate><description><![CDATA[最近在复习C++，对函数重载、函数重写、函数重定义与协变返回类型概念很不清晰，所以在此整理总结~~首先来看函数重载与函数重写





函数重载与函数重写


函数重载 
1、两个函数在同一个作用域 
2、同名不同参（不同的参数类型、不同的参数个数、不同的参数顺序）
函数重写 
1、两个函数不在同一个作用域（主要在继承关系中体现：分别在基类和派生类） 
2、子类重新定义父类中同名同参的虚函数


...]]></description><category></category></item><item><title><![CDATA[Linux下三种安装方式介绍（源码安装/rpm安装/yum安装）]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/79480053</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/79480053</guid><author>cherishinging</author><pubDate>Thu, 08 Mar 2018 10:06:54 +0800</pubDate><description><![CDATA[一、源码安装源码安装的步骤就是：编译源码，然后安装1.1 安装准备a. 首先用yum安装gcc，用于编译源码b. 官网下载源码包c. winSCP windows与linux传输文件（如果直接用要安装软件的linux电脑下载就不用传输了）1.2 安装过程a. 解压b. 进入解压后的目录配置软件 ./configure # 大多数情况下源码包都会带configure这样一个配置工具，具体使用方法可以...]]></description><category></category></item><item><title><![CDATA[Linux下彩色进度条的实现]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/79466165</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/79466165</guid><author>cherishinging</author><pubDate>Wed, 07 Mar 2018 10:50:39 +0800</pubDate><description><![CDATA[一、前言我们在Linux在安装软件的时候，均会有一个进度条来显现安装进度，进度条的实现较为简单，而彩色进度条则是在普通进度条的基础上增加了颜色的设置，下面来详细为大家介绍一个彩色进度条的实现。二、准备知识2.1 缓冲区概念一个缓冲区对象是固定数量的数据的容器，其作用是一个存储器，或者分段运输区，在这里数据可被存储并在之后用于检索。一般C库函数写入文件是全缓冲方式，而写入显示器是行缓冲方式，prin...]]></description><category></category></item><item><title><![CDATA[Linux学习笔记——权限与指令]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/79408299</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/79408299</guid><author>cherishinging</author><pubDate>Thu, 01 Mar 2018 13:26:23 +0800</pubDate><description><![CDATA[0 前言之前看鸟哥的私房菜，鸟哥有写到：Linux最优秀的地方之一，就在于他的多人多任务环境。Linux身份一般有三个类别，分别是：owner/group/others。那么这三个身份如何查看呢？当我们登录到Linux，输入ll，即可看到如下图1所示：图1 Linux文件前信息那么test.c这个文件前面的信息都是什么玩意呢？且听我详细介绍，如下图2所示，文件前的信息均是尤其含义：图2 Linux...]]></description><category></category></item><item><title><![CDATA[c++中类的默认四个成员函数介绍（构造函数+拷贝构造+析构函数+赋值运算符重载函数）]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/73850393</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/73850393</guid><author>cherishinging</author><pubDate>Wed, 28 Jun 2017 16:57:34 +0800</pubDate><description><![CDATA[在C++中，类的6个默认的成员函数包括：构造函数、析构函数、拷贝构造函数、赋值运算符重载函数、取地址操作符重载、const修饰的取地址操作符重载。本文将主要介绍前四个成员函数：一、构造函数在c++程序中，对象的初始化时一个不可缺少且十分重要的问题，因此c++在类的设计中提供了构造函数。 
构造函数，顾名思义，为对象分配空间，进行初始化，它是一种特殊的成员函数，具有以下特点：
1.函数名与类名相同。]]></description><category></category></item><item><title><![CDATA[C++ 命名空间-namespace作用与使用方法详解]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/73810785</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/73810785</guid><author>cherishinging</author><pubDate>Tue, 27 Jun 2017 17:49:37 +0800</pubDate><description><![CDATA[在学习c++的时候，看到很多程序中用了以下语句： 
using namespace std; 
这表明使用了命名空间std，那么什么是命名空间？为什么要使用命名空间呢？本文就详细介绍命名空间的意义和用法。1、为什么需要命名空间命名空间是ANSI C++引入的可以由用户命名的作用域，用来处理程序中常见的同名冲突。 
在c++中有4层次的作用域：文件、函数、类、复合语句。在不同的作用域中可以定义名字相同]]></description><category></category></item><item><title><![CDATA[C语言中几种类型所占字节数]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/72901573</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/72901573</guid><author>cherishinging</author><pubDate>Wed, 07 Jun 2017 17:09:25 +0800</pubDate><description><![CDATA[最近经常会遇到C语言中各类型变量所占字节数的问题，索性在这里做一个整理总结。 
其实C标准并没有具体给出规定哪个基本类型应该是多少个字节数，而且这个也与OS、编译器有关，比如同样是在32位操作系统，VC++的编译器下int类型为4个字节，而在tuborC下则是2个字节。 
下面给出一个表格，方便查看个类型的字节数：
  类型
  16位
  32 位
  64位  char
  1
  1
  1]]></description><category></category></item><item><title><![CDATA[通用冒泡排序法qsort的用法与其模拟实现]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/72599084</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/72599084</guid><author>cherishinging</author><pubDate>Sun, 21 May 2017 16:28:36 +0800</pubDate><description><![CDATA[qsort是函数库自带的快速排序函数，c中qsort函数包含在stdlib.h的头文件.其函数原型为：void __fileDECL qsort ( void *base,  size_t num, 
    size_t width, int (__fileDECL *comp)(const void *, const void * )各个参数分别是： 
  1、base ——  待排序数组首地址]]></description><category></category></item><item><title><![CDATA[深入理解指针数组、数组指针、函数指针、函数指针数组、指向函数指针数组的指针]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/72229626</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/72229626</guid><author>cherishinging</author><pubDate>Mon, 15 May 2017 21:53:17 +0800</pubDate><description><![CDATA[指针数组表达式为：int *p[5] 
理解：下标运算符[ ]的优先级是要高于指针运算符*，因此p先和下标运算符结合，决定了p首先是个数组，其类型int *，表明数组的元素都是都是指针。而数组占多少个字节由数组本身决定。其实指针数组表达就是一个存放指针的数组。 
其图示如下： 
数组指针表达式为：int (*p2)[5] 
理解：括号运算符（）的优先级是最高的，因此p2先和括号内的指针运算符*结合，]]></description><category></category></item><item><title><![CDATA[可变参数列表详解]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/70551939</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/70551939</guid><author>cherishinging</author><pubDate>Sun, 23 Apr 2017 22:14:04 +0800</pubDate><description><![CDATA[一、定义及表达方式可变参数，顾名思义，其参数是可变的，具体指的是其参数的个数是可变的，即函数参数数目可变，其一般格式为：type VarArgFunc(type FixedArg1, type FixedArg2,...)其中，参数可分为两部分：数目固定参数和数目可变参数。函数至少需要一个固定参数，固定参数的声明和普通参数一样，可变参数由于个数不确定，声明时用“…”表示。注意，固定参数和可变参数共同]]></description><category></category></item><item><title><![CDATA[函数调用栈帧过程（带图详解）]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/70228949</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/70228949</guid><author>cherishinging</author><pubDate>Tue, 18 Apr 2017 15:32:35 +0800</pubDate><description><![CDATA[函数调用我们大家都很熟悉，我们都知道函数调用是发生在栈上的。首先，我们来了解一下程序对内存使用的分区情况：
  区域
  作用  栈区（stack）
  由编译器自动分配和释放，存放函数的参数值，局部变量的值等。操作方式类似与数据结构中的栈
  堆区（heap）
  一般由程序员分配和释放，若程序员不释放，程序结束时可能由操作系统回收。与数据结构中的堆是两码事，分配方式类似于链表
  静态区（sta]]></description><category></category></item><item><title><![CDATA[如何给给字符数组赋值]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/67634393</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/67634393</guid><author>cherishinging</author><pubDate>Tue, 28 Mar 2017 12:18:37 +0800</pubDate><description><![CDATA[要说C语言中最让我觉得棘手的，就是字符数组的，C语言中没有字符串这个类型，字符串只能存放在字符型数组中。那么，我们先来看看如何给一个一维数组赋值：1、定义的时候直接赋值：char arr[10] = {"kitty"};这种写法也可以直接省略花括号，直接写成：char arr[10] = "kitty";2、初始化列表，把各个字符依次赋给数组中的元素：char arr[10] = {'k','i',]]></description><category></category></item><item><title><![CDATA[EOF的那些事儿]]></title><link>https://blog.youkuaiyun.com/cherishinging/article/details/66973630</link><guid>https://blog.youkuaiyun.com/cherishinging/article/details/66973630</guid><author>cherishinging</author><pubDate>Mon, 27 Mar 2017 17:06:00 +0800</pubDate><description><![CDATA[开始学习C语言有一段时间了，遇到的一个问题就是EOF。EOF到底是什么呢，百度这么解释：计算机术语，是end of file的缩写，在操作系统中表示无更多的资料读取。 
看过一些程序，比如下面这段：    char ch;
    while ((ch=getchar())!= EOF)
    {
        dosomething();          
    }之前一直以为这段代码中的]]></description><category></category></item></channel></rss>