学习方法

The way to learn a new programming language is to write programs.

学习一门新编程语言的方式是编写程序。

函数(Function)

函数的四部分:

  • 返回类型;
  • 函数名;
  • 参数列表;
  • 函数体。

main 函数返回值(Return Code)

0:表示正常;

其他:表示异常。

类型(Type)

Types are one of the most fundamental concepts in programming

类型是编程中最核心的概念。

A type defines both the contents of a data element and the operations that are possible on those data

类型定义了一个数据元素的内容和操作。

C++ 文件名后缀(Extension)

  • .cc
  • .cxx
  • .cpp
  • .cp
  • .C

返回码(Return Code)

  • UNIX: echo $?
  • Windows: echo %ERRORLEVEL%

IO(Input and Output)

标准库 iostream 提供了输入输出功能。

两个类型(Type)

包含了两个类型 istreamostream

流(stream) 是一串字符序列,它从 IO 设备中读取或者写入 IO 设备中。

四个对象(Object)

  • cin:标准输入;
  • cout:标准输出;
  • cerr:标准错误;
  • clog:日志信息。

头文件(Header)

语句 #include<iostream>,包含在 <...> 中的 iostream,我们称之为头文件(header)。

#include 命令(directive)

  • 不能包含在函数内;
  • 出现在源文件开头。

字符串字面量(String Literal)

字符串字面量是包含在双引号中的一串字符序列。

控制符(manipulator)

std::endl 是一个控制符,作用是写入一个换行符同时刷新缓冲区。

命名空间

为避免命名冲突,所有标准库中定义的名称都属于 std 命名空间。

注释

An incorrect comment is worse than no comment at all because it may mislead the reader.

一个错误的注释比没有注释更加糟糕。

  • 单行注释:// 标志开始,换行符表示结束;
  • 块注释:/* 标志开始,*/ 标志结束。

循环

while 语句

while(condition)
statement

for 语句

for(init; condition; expression)
statement

对于循环次数确定的情况,我们使用 for 语句;对于循环次数未知的情况,我们使用 while 语句。

关于 forwhile 的区别可见:https://stackoverflow.com/questions/2950931/for-vs-while-in-c-programming

流对象作为条件

C++ 支持这样的语句 while (std::cin >> value),语句的作用是检查流对象的状态(对于输入流,检查流是否遇到错误或者文件结束指示符 EOF)。流状态正常,条件成立;流状态异常,条件失败。

分支

if (condition)
statement

类(Class)

In fact, a primary focus of the design of C++ is to make it possible to define class types that behave as naturally as the built-in types.

事实上,C++ 的一个设计重点就是使得自定义的类类型可以表现得和内建类型一样自然。

我们通过定义类来定义自己的数据结构。

类三要素:

  • 类名;
  • 头文件位置;
  • 支持的操作。

头文件名一般与类名相同。自定义头文件的后缀一般为,

  • .h
  • .hxx
  • .hpp
  • .H

类作者可以定义所有与类有关的操作,

  • 创建时的操作;
  • 赋值时的操作;
  • 相加时的操作;
  • 输出时的操作;
  • 输入时的操作;
  • 等等

文件重定向(File Redirection)

使用文件重定向来避免重复输入。

addItems <infile >outfile

成员函数(Member Function)

成员函数,有时也称为「方法」,是一个函数,其作为类的一部分。

我们通过 . 操作符来访问类对象的成员。比如 obj.member. 操作符左侧必须是类对象,右侧是类对象的成员。

C++ Primer 5th 阅读笔记:入门指南的更多相关文章

  1. Muduo阅读笔记---入门(一)

    第一步:下载源码和文档 下载muduo项目的源码.<muduo-manual.pdf>文档,以及<Linux多线程服务端编程:使用muduo C++网络库.pdf>,这些是前期 ...

  2. C++ Primer Plus阅读笔记

    cin进行文本输入 使用cin获取字符的基本方式 char ch; cin >> ch; cin读取char值时将忽略空格和换行符.此外,发送给cin的输入被缓冲.这意味着只有在用户按下回 ...

  3. C-C Primer Plus阅读笔记

    常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...

  4. Webpack v4.8.3 快速入门指南

    一.进入 https://webpack.docschina.org/ 官方文档,点击 "文档" 进入 文档页面,文档中包含  “概念,配置,API,指南,LOADERS,插件&q ...

  5. 【读书笔记】C++ primer 5th 从入门到自闭(一)

    这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的 ...

  6. 《Java多线程编程实战指南(核心篇)》阅读笔记

    <Java多线程编程实战指南(核心篇)>阅读笔记 */--> <Java多线程编程实战指南(核心篇)>阅读笔记 Table of Contents 1. 线程概念 1.1 ...

  7. ESP8266文档阅读ESP8266 SDK 入门指南

    ESP8266 SDK  入门指南 1.概述 1.2.ESP8266 HDK 1.3.ESP8266 SDK 1.4.ESP8266 FW 1.5.ESP8266 工具集 2.1.开发板方案 3.软件 ...

  8. Kafka 权威指南阅读笔记(第三章,第四章)

    Kafka 第三章,第四章阅读笔记 Kafka 发送消息有三种方式:不关心结果的,同步方式,异步方式. Kafka 的异常主要有两类:一种是可重试异常,一种是无需重试异常. 生产者的配置: acks ...

  9. C++ Primer 第四版阅读笔记

    阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...

  10. Ext JS 6学习文档–第1章–ExtJS入门指南

    Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的,因为 ExtJS 6 目前的中文学习资料还很少.google 搜索资料时找到了一本国外牛人写的关于 ExtJS ...

随机推荐

  1. 第一天1h

    //摄氏度和华氏度之间的换算//20211120//ZhangWenjing#include<stdio.h>int main(void){ int f = 0; int c = 0; s ...

  2. 寄存器与RAM的区别

    转自:https://blog.csdn.net/qq_18191333/article/details/106912668 概述 寄存器是"存储设备",主要用于存储和检查微型计算 ...

  3. easycode模版-基于ruoyi-cloud

    ##定义初始变量 #set($tableName = $tool.append($tableInfo.name, "Controller")) ##设置回调 $!callback. ...

  4. arp 基本功能

    地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要.ARP最初在1982年的R ...

  5. Unity ContentSizeFitter组件

    Content Size Fitter组件,它可以动态改变物体的宽高,但它有一个非常需要注意的点就是,它不是即时刷新,是帧末刷新,这个特性如果没注意会出现一个问题 就是你拿到加了这个组件的宽高本不是你 ...

  6. rename基本操作

    电脑是Macbook, 用Homebrew先安装rename. 如果没安装Homebrew 直接复制到terminal中回车, 时间稍长. ruby -e "$(curl -fsSL htt ...

  7. Linux & 标准C语言学习 <DAY4>

    一.数据类型     为什么要对数据进行分类         1.现实中的数据就是自带类别属性的         2.对数据进行分类可以节约内存存储空间.提高运行速度     C语言中数据分为两大类别 ...

  8. 90 条简单实用的 Python 编程技巧,建议收藏

    编码原则 建议 1:理解 Pythonic 概念 -- 详见 Python 中的<Python 之禅> 建议 2:编写 Pythonic 代码 避免不规范代码,比如只用大小写区分变量.使用 ...

  9. 发布新版博客备份功能:生成 sqlite 数据库文件,vscode 插件可查看

    大家好,最近我们重新开发了园子的博客备份功能,今天发布第一个预览版,欢迎大家试用. 点击博客后台侧边栏的博客备份进入新版博客备份: 点击创建备份按钮创建博客备份任务(目前每天只能创建一次备份),待备份 ...

  10. 亚马逊商品页面爬取(使用headers字段).py(亲测有效)

    import requests def getHTMLText(url): try: kv = {'user-agent':'Mozilla/5.0'} # 请求头;指定访问浏览器为Mozilla5. ...