笔记
文章平均质量分 79
吴雨墨
勤奋的孩子
展开
-
C++ Primer Plus学习笔记-第十七章:输入,输出和文件
第十七章:输入,输出和文件显而易见,本章的主要内容是和文件相关的数据操作;实际上关于文件系统,操作系统提供了相应的接口,并且很多本质上不是文件的系统也被抽象为文件,比如鼠标键盘打印机等,这种“万物皆文件”的封装方法实际上已经有一段历史了,不过本章的研究中心并不在这个方向,我们关心的是如何操作成品文件,如何读写,如何在屏幕上显示信息,如何从键盘获得输入等;1.C++输入和输出概述C++中有两个头文件:<\iostream\>和\<fstream\>;在这门语言中,输入和输出都被抽原创 2021-04-25 23:12:06 · 561 阅读 · 0 评论 -
C++ Primer plus学习笔记-第十六章:string类和标准模板库
第十六章:string类和标准模板库前言:这一章已经相当靠近全书的后面部分了;这一章我们会深入探讨一些技术上的细节,比如string的具体构造函数,比如适用于string类的几个函数,比如我们还会介绍一下标准模板库STL的一些细节;后面还会涉及智能指针的具体实现方式,总之这一章将会对细节有相当程度的深入;1.string类这个类是头文件string支持的,实际上是模板basic_string<char>的一个具体化,同时省略了和内存管理相关的参数,下面让我们看看string类的七个构造原创 2021-04-19 15:56:28 · 336 阅读 · 0 评论 -
《算法图解》学习笔记-01
第一章:算法的基本知识本章的重点是运行时间的计算方法;笼统的来讲,运行时间描述的是数据量线性增长时运行时间的变化规律;我们将运行时间写为:O(表达式)在计算机中每个内存单元都有自己的编号,也就是说在处理器眼中它们是线性且连续排列的;访问某个确定的内存单元时,也可以使用明确的内存地址来具体访问某个单元;链表链表的结构是:#mermaid-svg-H1FOzKCOzsSzziaU .label{font-family:'trebuchet ms', verdana, arial;font-family原创 2021-04-07 17:25:51 · 167 阅读 · 3 评论 -
C++ Primer Plus学习笔记-第十五章:友元,异常和其它
第十五章:友元,异常和其它文章目录第十五章:友元,异常和其它1.友元2.嵌套类3.异常4.RTTI5.类型转换运算符以上为本章所有内容!前言:本章有三个主要内容,分别是友元,异常和其它;本章除了进一步深入剖析友元的使用(不仅仅是友元函数,还包括友元类),还会提供关于异常的处理方式(这对大型程序的稳定性十分重要),另外还会额外讨论一些其它知识;1.友元友元函数可用于扩展类的接口,而友元类的所有方法则都可以使用被友元类的数据成员,包括公有私有保护等所有成员;在一个类中将另一个类声明为友元,只需在一个类原创 2021-04-07 15:49:47 · 324 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第十四章:C++中的代码重用
第十四章:C++中的代码重用文章目录第十四章:C++中的代码重用1.包含对象成员的类2.私有继承3.多重继承4.类模板前言:本章将讨论包含对象成员的类,模板类和valarray,私有和保护继承,多重继承,虚基类,创建类模板,使用类模板和模板的具体化;另外,本章的所有内容全部都围绕一个核心——C++中的代码重用展开1.包含对象成员的类类中可以包含对象,比如前几章中就有在类对象中包含string类的例子;但现在我们将从实现的角度考虑这一现象;valarray类是由头文件valarray支持的,这个原创 2021-04-02 00:18:51 · 181 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第十三章:类继承
C++ Primer Plus学习笔记-第十三章:类继承前言:本章主要探讨类继承相关技术细节,在实际进入探讨之前我们需要观察这样一个继承实例:#ifndef TABTENN1_H_#define TABTENN1_H_#include <string>using std::string;class TableTennisPlayer{private: string firstname; string lastname; bool hasTable;public: Ta原创 2021-03-28 01:53:56 · 144 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第十二章:类和动态内存分配
前言:本章主要阐述对类成员使用动态内存分配的技术细节,并复习前面提到的复制构造函数,赋值运算符,静态类成员,定位new运算符,并动手实现string类;下面这个文件提供了一个不太好的string类实现方式:#include <iostream>#ifndef STRINGBAD_H_#define STRINGBAD_H_class StringBad{private: char * str;//指向字符串的指针 int len;//字符串的长度 static int nu原创 2021-03-24 13:58:22 · 150 阅读 · 0 评论 -
The C Programming Language 精华版-第一章:导言
前言:The C Programming Language是一部非常经典的作品,它由C语言之父亲笔书写,并凭借本身过硬的质量成为C语言的标准之一本章作为全书的第一章,主要的作用是建立对这门语言的大略认知;程序示例:#include <stdio.h>//包含头文件main()//主函数入口{ printf("Hello,world!");//函数调用}在集成的IDE中你可以使用软件本身执行源文件,但在UNIX系统中你需要这样做才能从一个源文件得到一个可执行文件。也就是我们说的程原创 2021-03-17 21:06:52 · 852 阅读 · 0 评论 -
C++ primer plus学习笔记-第十章:对象和类
前言:本章重点阐述对象和类的具体特性和一些实现细节OOP的特性:抽象封装和数据隐藏多态继承代码的可重用性使用OOP编程时,首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需要的操作定义一种数据类型时,不仅仅是分配了内存,还规定了可以对变量执行的操作,具体来说完成了三项工作:决定数据对象需要的内存数量决定如何解释内存中的位决定可使用数据对象执行的操作或方法接口:接口是一个共享框架,供两个系统交互使用;公众是使用类的程序,交互系统由对象组成,而接口由编原创 2021-03-16 23:01:31 · 203 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第八章:函数探幽
第八章:函数探幽内联函数是C++为提高程序运行速度而做的一项改进,它的原理是:像C语言中的宏替换那样直接将函数代码插入调用它的位置并直接编译,好处是不需要像常规函数调用一样来回切换执行位置,缺点是一个内联函数需要拷贝多个副本;当函数调用相当频繁时使用内联函数效果更明显;使用内联函数的条件:在函数声明前加上关键字inline在函数定义前加上关键字inline注意:内联函数不能递归引用是已定义变量的别名,主要用途是作为被调用函数的形参,这样被调用的函数就可以直接使用原始数据;C和C++使用符号原创 2021-03-16 19:59:36 · 173 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第七章:函数——C++的编程模块
第七章:函数——C++的编程模块定义函数的基本格式:return-type functioonName(int n){ statement(s); return data;}C++函数不能直接返回数组 ,但可以将数组包含在结构中或作为对象组成部分返回;返回值的实现机制是:函数将返回值写入到指定的CPU寄存器或内存单元中,主调函数会在执行完成后读取写入的数据;如果函数体中有多条返回语句,函数会在执行完第一条返回语句后将使用全返回,编译器会对多条返回语句做出警告;原型描述了函数原创 2021-03-16 19:56:23 · 130 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第六章:分支语句和逻辑运算符
第六章:分支语句和逻辑运算符if语句的基本格式:if (test-condition) statementif-else语句的通用格式:if (test-condition) statement1else statement2注意:C++不会自动将相同缩进的语句默认为同一个语句块,因此使用if关键字时要学会使用大括号if else if else通用格式:if (test-condition) statement1else if (test-condit原创 2021-03-16 19:50:29 · 106 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第五章:循环和关系表达式
第五章:循环和关系表达式for循环的基本结构:for(initializationl;test_expression;update_expression) bodyC++常用的方法是:在for和括号之间加上一个空格,而省略函数名和括号之间的空格;C++将赋值表达式的值定义为左侧变量的值;运算符<<的优先级比表达式中的运算符要高;要让cout在显示0和1的时候显示false和true,可以这么做:cout.setf(ios_base::boolalpha);当判定表达式修原创 2021-03-16 19:47:26 · 127 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第四章:复合类型
第四章:复合类型声明数组:typeName arrayname[arraySize],可以用一个逗号隔开元素的大括号包括的列表初始化数组,可以不指定数组长度编译器会自动计算只有在定义数组的时候才能使用初始化初始化数组时提供的值可以少于数组元素数,未覆盖的元素初始化为0,初始化时可省略等号,列表初始化禁止缩窄转换C风格字符串以’\0’结尾,ASCII码为0cstdlib中的strlen()函数只计算有效字符,空白符和结束符都不计;sizeof算符机械统计数据长度用引号囊括的字符串隐式以’\0’结尾原创 2021-03-16 19:45:38 · 124 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第三章:处理数据
第三章:处理数据&符号检索变量的内存地址C++命名规则:只能使用字母字符,数字和下划线( _ )名称的第一个字符不能是数字区分大写字符和小写字符不能将C++的关键字用作名称以两个下划线和以下划线和小写字母大打头的名称被保留给实现(编译器及使用的资源)使用,以一个下划线开头的变量名被保留给实现,用作全局标识符;C++对名称没有长度限制,名称中的所有字符都有意义,但某些平台有限制两种长变量名的命名方式:Ⅰ.单词之间用下划线隔开Ⅱ.从第二个单词开始首字母大写short是shor原创 2021-03-16 19:42:27 · 133 阅读 · 0 评论 -
C++Primer Plus学习笔记-第二章:开始学习C++
第二章:开始学习C++#include<iostream>int main(){ using namespace std; cout<<"come up and c++ me some time."; cout<<endl; cout<<"you won't regret it!"<<endl; return 0;}main()函数是程序的入口,编译器会向程序中添加一段启动代码,操作系统发可以通过原创 2021-03-16 19:39:22 · 96 阅读 · 0 评论 -
C++ Primer Plus学习笔记-第1章:预备知识
第一章:预备知识C语言是过程性语言,C++在C的基础上添加了面向对象的属性,并且拥有模板支持范式编程;C语言之前的编程称为"意大利面条式编程",C语言首创了结构化编程的先河;最新的C语言标准是C99文件后缀名中,c程序使用小写的c,C++使用大写的C或cpp;...原创 2021-03-16 19:37:13 · 93 阅读 · 0 评论 -
C++ primer plus 学习笔记-第九章:内存模型和名称空间
第九章:内存模型和名称空间当编写更加庞大的程序时,只使用一个源文件是不够的;为了使程序结构更加清晰,可以使用多个文件来包括源代码;源文件可以组织为:头文件:包含结构声明和使用这些结构的函数的原型源代码文件:包含与结构有关的函数代码源代码文件:包含调用与结构相关的函数代码不要将函数定义和变量声明放在头文件中!这会引来同一个函数被反复包含的问题!头文件通常包含:函数原型使用#define或const定义的符号常量结构声明类声明模板声明内联函数关于#include指令包含文件时原创 2021-03-14 17:38:46 · 115 阅读 · 2 评论