自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C++Primer(第五版)学习笔记——成员函数和非成员函数(第七章)

首先,理清类的实现和接口的区别:书上说:类的接口包括用户所能执行的操作,类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。个人这么理解:接口是用户可以看到的与类有关的部分,实现是用户看不到的部分作为接口组成部分的非成员函数,他们的定义和声明都在类的外部。(接口也可以是public的成员函数?)成员函数的声明必须在类的内部,但是定义可以在类外。(定义时成员的名字必须包含它所...

2018-05-05 15:13:48 5050

原创 C++Primer(第五版)学习笔记——函数指针和函数的特殊语言特性(第六章)

默认实参:一旦某个形参被赋予了默认值,他后面的所有形参都必须有默认值。调用含有默认实参的函数时,可以使用任意个数的参数,默认实参负责填补函数缺少的尾部实参。在给定的作用域中一个形参只能被赋予一次默认实参,不能修改一个已经存在的默认值。(即使默认值相同也不行)用作默认实参的名字在函数声明所在的作用域内解析,而这些名字的求值过程发生在函数调用时int wd =80;cahr def = ' ';s...

2018-05-04 21:33:57 169

原创 C++Primer(第五版)学习笔记——函数重载和函数匹配(第六章)

重载函数其实就是为了方便记忆那些实现方法、作用类似的一类函数。重载函数必须在形参类型或者数量上有所不同。重载和const形参:一个拥有顶层const的形参无法和另一个么有顶层const的形参区别开来(因为既可以用常量初始化一个const形参,也可以用 非常量初始化一个const形参。)、cast_const和重载:(这里没太看懂)书中给了个例子:定义了一个形参是常量引用,返回值也是常量引用的函数。...

2018-05-03 21:09:32 272

原创 C++Primer学习笔记(第五版)——函数的返回类型和return语句(第六章)

没有返回值的函数:没有返回值的return语句只能用在返回类型是 void 的函数中,且这类函数会在最后一句后面隐式的执行return(不要求非得写return)返回值是void的函数也可以返回一个表达式,此时这个表达式必须是另一个返回void的函数(不明白为什么要这么做,先当作语法记)有返回值的函数:return的表达式类型必须与函数的返回类型相同,或者能隐式的转换成函数的返回类型。在含有ret...

2018-05-03 13:27:13 246

原创 C++Primer学习笔记(第五版)——类型转换(第四章)

类型转换分为隐式转换和显示转换。几种隐式转换算术转换:运算对象将转换成最宽的类型(避免损失精度)整型提升:小整型(char(u)、short(u)、bool)会提升为int或unsigned int较大的char类型会转换成int(u)、long(u)、long long(u)中最小的(能容纳char) 有符号与无符号数的转换:无符号类型不小于有符号类型时,有符号类型转换成无符号类型。无符号类型小...

2018-05-03 12:42:32 168

原创 C++Primer(第五版)学习笔记——函数的参数传递(第六章)

调用函数的时候发生了什么?主调函数暂停->使用实参初始化形参->执行函数体直到遇到return语句。值传递和引用传递:函数的参数传递分为两种:值传递和引用传递。值传递中是用实参的拷贝来初始化形参,所以函数内部对形参的操作与实参无关。(可以使用指针来改变实参(实参是地址))引用传递实际上是将形参绑定到实参上,所以对形参的操作实际上就是对它绑定的实参的操作。(实参是对象,非引用)我们通常使...

2018-04-30 20:37:53 136

原创 C++Primer(第五版)学习笔记——运算符(第四章)

运算符分为一元运算符、二元运算符、三元运算符(条件运算符)、调用运算符(不规定运算对象数量)算术运算符:算术运算符的运算对象和求值结果都是右值。注意溢出问题(超出该类型所能表示的范围)取模运算符 % :m%n = m - m/n *n参与取模运算的运算对象必须是整型.C++11新标准规定商一律向0取整(抛弃掉小数位)。取模运算结果的符号匹配m的符号。逻辑和关系运算符:很明显运算对象和结果都是右值(...

2018-04-28 14:28:50 315

原创 C++Primer(第五版)学习笔记——表达式基础(第四章)

个人觉得表达式只需要弄清楚几个概念:优先级、结合律、求值顺序、左值、右值和类型转换。首先,什么是表达式?表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。字面值和变量是最简单的表达式。优先级和结合律:C++规定了运算符的优先级和结合律,在一条复杂的表达式中,优先级高的运算符先执行,优先级相同的运算符,则按照结合律判断运算顺序(先计算右侧运算符的结果还是左侧运算符的结果)。(括号不受优先级...

2018-04-28 11:25:03 187

原创 C++Primer(第五版)学习笔记——数组(第三章)

数组也是一个存放对象的容器,只不过,他是定长的,且访问其中的元素需要通过元素的位置。数组是一种复合类型。内置数组的定义和初始化:初始化方式分为两种:默认初始化和列表初始化。Type name[size] = {a,b,c}因为维度也是数组类型的一部分,在编译时应该是已知的,所以数组的维度必须是一个常量表达式。(常量表达式在编译时已知结果)定义数组的时候必须指定数组的类型,不允许使用auto关键字由...

2018-04-26 20:53:16 158

原创 C++Primer(第五版)学习笔记——string以及vector基础(第三章)

string:string是标准库类型,表示可变长的字符序列(个人把他看做特殊的vector<char>)初始化string对象的几种方式:string s1; //默认初始化,s1是一个空串string s2 = s1; //拷贝初始化,调用拷贝赋值函数string s2(s1); //直接初始化。调用...

2018-04-26 13:47:38 193

原创 C++Primer(第五版)学习笔记——处理类型和自定义数据结构(第二章)

类型别名:typedef:关键字作为声明语句中的基本数据类型的一部分。:typedef double wages;        typedef wages base, *p; //有传递性、声明符可以包含类型修饰符、可以同时声明多个类型别名using(别名声明):关键字using作为别名声明的开始,其后紧跟 别名、等号以及类型名。using wages = double有一点要注意的是...

2018-04-19 20:49:55 226

原创 C++Primer(第五版)学习笔记——复合类型及const限定符(第二章)

const的对象必须初始化。一条声明语句由一个基本数据类型,和紧随其后的声明符列表组成,类型修饰符是声明符得一部分。int *p;int *&r= p; // r 是一个对指针的引用(从r开始向左看,知道r是一个引用->绑定的是一个指针->指针的类型是int)引用(左值):引用必须初始化,引用是和它的初始值绑定在一起引用不是对象,它只是他所绑定的对象的另外一个名字,所以不能定...

2018-04-19 17:42:41 185

原创 C++Primer(第五版)学习笔记——变量(第二章)

对象是指一块能存储数据并具有某种类型的内存空间。变量提供一个具名的、可供程序操作的存储空间。(二者好像没什么不同)初始化:初始化不是赋值,初始化是创建变量时赋予其一个初值,而赋值的含义是把变量当前的值擦除,用一个新的值代替。在同一条定义语句中,可以用先定义的变量值去初始化后定义的其他变量。定义于任何函数体之外的内置类型如果没有被显示初始化,会被默认初始化为0,而在函数内部内置类型不会被初始化,未被...

2018-04-19 16:29:53 231

原创 C++Primer(第五版) 学习笔记——基本内置类型(第二章)

可寻址的最小内存块称为字节(byte,8bit),存储的基本单元称为字(word,32/64bit)unsigned int 可以缩写为 unsigned一个char的大小和一个机器字节一样,都是确保可以存放机器字符集中任意字符的数字值。char因机器而异,其实会表现为 unsigned或signed中的一种。当我们赋给一个无符号类型超出其表示范围的值时,结果是初始值对这个类型所能表示的最大值取模...

2018-04-19 15:51:01 189

原创 C++Primer(第五版) 学习笔记——第一章

本章简单的介绍了一些C++的基础知识,大部分知识点在后面的章节都会有详细的讲解。知识点整理:语句一般是顺序执行的。表达式:一个表达式产生一个运算结果,它由一个或多个运算对象和(通常是)一个运算符组成。(后面会有章节详细介绍表达式)#include指令和头文件的名字必须写在同一行中,#include指令必须出现在所有函数之外。来自标准库的头文件使用< >包围,不属于标准库的头文件,使用"...

2018-04-19 09:03:41 236

原创 顶层const和底层const

今天读到函数这章,发现又说到了顶层(高层)const和底层(低层)const,然而自己对他们还是一知半解,就重读了有关这一部分的知识。感觉自己已经理解了,总结一下。首先这里是书中的原话:用名词顶层const表示指针本身是一个常量;用名词底层const表示指针所指的对象是一个常量。我们知道const是一个限定符,根据书中的话我认为可以这么理解:如果const修饰的是一个指针,那么这个指针就是一个顶层...

2018-03-25 19:33:14 194

原创 迭代语句以及跳转语句

while语句:while的条件部分可以是一个表达式或者一个带初始化的变量声明书中原话:定义在while条件部分或者while循环体内的变量每次迭代都经历从创建到销毁的过程如下面的代码,程序会输出10个2int cc = 1; while (int i = 1) { cc++; i++; std::cout << i << std::endl; if...

2018-03-25 15:12:20 383

原创 条件语句

首先是if - else 语句,这个对我来说并不陌生。个人觉得其中需要注意的是:在if和else后的语句块要使用花括号包起来;因为在C++ 中规定else与离自己最近的未匹配的if匹配,如果不用花括号括起来的话,如果在if中嵌套了另一个if,else就会进行错误的匹配。再一点,我们要理解语句块的使用时机:当语法上需要一个语句,而逻辑上却需要多条语句来实现时,我们使用花括号来吧这些语句包起来,形成一...

2018-03-24 21:32:54 166

原创 C++中的运算符

今天读了C++Primer中的表达式一章,特来整理有关运算符的知识要点。首先是算术运算符:所有的表达式的运算顺序与三点有关:求值顺序、优先级、结合律。其中优先级和结合律在书中147页可以查到,至于求值顺序目前书中还没有细讲,暂且不做描述。溢出:造成溢出有两个原因:其一是因为数学性质本身(例如除数是0)其二是当计算结果超出该类型所能表示的范围是就会产生溢出运算符%:取模/取余运算符m%n = m -...

2018-03-23 23:11:50 342

原创 C++ 表达式基础知识(左值、右值未掌握)

表达式由一个或多个运算对象组成,对表达式求值将会得到一个结果。字面值和变量是最简单的表达式。重载运算符:当运算符作用于类类型的运算对象的时候,用户可以自行定义其含义。重载运算符时,包括运算对象的类型和返回值的类型,都是由该运算符定义的,但是运算对象的个数、运算符的优先级和结合律都是无法改变的对于那些没有指定运算顺序的运算符来说,如果表达式指向并修改了同一个对象,将会引发错误并产生未定义的行为。所以...

2018-03-23 21:35:09 799

原创 C++Primer 数组部分

数组是一种复合类型,与vector类似数组也是存放类型相同的对象的容器(所以不能存放引用),这些对象没有名字,需要通过其位置访问。数组本身是一个对象。与vector不同的是数组的大小是固定的,不能随意的向数组中增加元素。首先是数组的声明,数组的声明形如 a[d] ,其中a是数组的名字,d是数组的维度,维度必须是一个常量表达式,且必须大于0;默认情况下,数组中的元素会被默认初始化,和内置类型的变量一...

2018-03-23 10:04:24 400

空空如也

空空如也

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

TA关注的人

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