C++ Primer 5th 阅读笔记:入门指南
学习方法
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)
包含了两个类型 istream
和 ostream
。
流(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
语句。
关于
for
和while
的区别可见: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
,.
操作符左侧必须是类对象,右侧是类对象的成员。