学习方法

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. JavaScript 字符串和正则相关的方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 对深度学习中全连接层、卷积层、感受野、1×1卷积、池化层、softmax层、全局平均池化的一些理解

    1.全连接层 在卷积神经网络中,在多个卷积层和池化层后,连接着1个或1个以上的全连接层,全连接层把卷积层和池化层提取出来的所有局部特征重新通过权值矩阵组装成一个完整的图,因为用到了所有的局部特征,所以 ...

  3. KERNEL1

    WHAT IS KERNEL KERNEL是一个负责连接计算机硬件与软件的一个模块,当软件对硬件进行调用的时候,或者发送一些置零的时候,KERNEL负责将这些指令转化并发送给CPU或者计算机中其他硬件 ...

  4. luffy项目全局配置

    一:media文件夹配置 settings.dev下配置media文件夹,暴露资源 media_path=BASE_DIR.parentMEDIA_ROOT=Path(media_path).join ...

  5. 认证全家桶(Cookie、Session、Token、JWT)

    什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明"你是你自己"(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就 ...

  6. python创建线程传参误区记录

    创建线程可以使用threading模块中的Thread子类: 其中Thread子类允许的参数如下: (self, group=None, target=None, name=None, args=() ...

  7. 声网Agora Lipsync 技术揭秘:通过实时语音驱动人像模拟真人说话

    元宇宙的火热让人们对未来虚拟世界的形态充满了幻想,此前我们为大家揭秘了声网自研的 3D 空间音频技术如何在虚拟世界中完美模拟现实听觉体验,增加玩家沉浸感.今天我们暂时离开元宇宙,回到现实世界,来聊聊声 ...

  8. SpringBoot---起步依赖starter

    1.简化spring应用的初始搭建和开发过程. springboot程序优点:自动配置.起步依赖(简化依赖配置).辅助功能(内置服务器...) <?xml version="1.0&q ...

  9. Apollo 分布式配置中心理论到实践

    携程开源的配置管理中心(统一管理各种应用配置的基础服务组件),能够集中化管理应用的不同环境,不同集群的配置,配置修改后能够实时推送到应用端,适合微服务配置管理场景.Apollo包括服务端和客户端. 在 ...

  10. 实现一个CRDT工具库——LWWReg

    LWWReg LWW Register是一种数据结构,用于存储一个值和一个时间戳,支持读取和写入操作.在写入时,如果新的时间戳比原来的时间戳更大,那么就更新值和时间戳:在读取时,直接返回当前的值.这个 ...