学习方法

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. SSH、SFTP、FTP、Telnet、SCP、TFTP协议的原理

    一.SSH协议1.什么是SSH?SSH全称 安全外壳协议(Secure Shell),,是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境. 如果一个用户从本地计算机,使用SSH ...

  2. linux操作系统scp 命令远程复制文件

    scp  复制文件到远程服务器,端口限制情况下 scp -P 22  文件名  远程服务器用户名@IP:/路径 scp -P 22 file user@IP:/file scp -P 复制文件到远程服 ...

  3. hive --service metastore 启动报错

    1.问题示例: [Hadoop@master Hive]$ hive --service metastore2021-10-28 15:37:57: Starting Hive Metastore S ...

  4. AIR32F103(十一) 在AIR32F103上移植微雪墨水屏驱动

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  5. 为什么 Go 语言 struct 要使用 tags

    原文链接:为什么 Go 语言 struct 要使用 tags 在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构.在 struct 中,我们可以定义多个字段,每个字段可 ...

  6. Apache Kafka教程--Kafka新手入门

    Apache Kafka教程--Kafka新手入门 Kafka Assistant 是一款 Kafka GUI 管理工具--管理Broker,Topic,Group.查看消费详情.监控服务器状态.支持 ...

  7. .Net7 GC标记阶段代码的改变

    前言 由于业务需求,在探究.Net7的CLR,发现了一个不通的地方,也就是通过GCInfo获取到了对象之后.它并没有在GcScanRoots(对象扫描标记)里面对它进行标记,那么如果没有标记这个对象如 ...

  8. java网络编程--2 IP,端口,通信协议,TCP/UDP对比

    java网络编程--2 IP,端口,通信协议,TCP/UDP对比 1.3.IP ip地址:InetAddress 唯一定位一台网络上的计算机 127.0.0.1 :本机localhost IP地址的分 ...

  9. java多线程--2 静态代理、Lambda表达式

    java多线程--2 静态代理.Lambda表达式 静态代理 package com.ssl.demo02; //静态代理 //真实对象和代理对象都要实现同一个接口 //代理对象必须要代理真实角色 / ...

  10. Solon2 接口开发: 分布式 Api Gateway 开发预览

    建议使用专业的分布式网关产品,比如: nginx apisix [推荐] k8s ingress controller 等... 对 Solon 来讲,只有 Gateway:它调用本地接口时,则为本地 ...