来源于C++ primer 书籍(只是为了方便记忆)
1.1、编写一个简单的C++程序
对于每次c++程序来说都包含一个或者多个函数(function),其中一个必须命名为main,操作系统是通过main来运行C++程序。
int main()
{
return 0;
}
一个函数的定义包括四个部分:返回类型(return type)、函数名(function name)、一个括号包围的形参列表(parameter list),以及函数体(function body)。
int类型为内置类型。
函数定义最后一部分是函数体,它是一个以花括号(curly brace)开始,以右花括号结束的语句块(block of statement)。
重要概念:类型:类型是程序设计最基本的概念之一,一种类型不仅定义了数据元素的内容,还定义了这种类型数据上可以进行的运算
1.1.1 、编译、运行程序
程序源文件命名约定:
程序文件通常被称为源文件(source file)。最常见的包括:.CC、.CXX、.CPP、.CP及.C。
从命名行运行编译器(UNIX系统中的外壳程序窗口或者Windows系统中的命令提示符窗口)
$ CC prog1.CC
CC是编译器程序的名字,$是系统提示符,编译程序生成一个可执行文件。
UNIX系统中的编译器通常会将可执行命名为a.out。
window系统会将这个可执行文件命名为prog1.exe。
为了在Windows系统中运行一个可执行文件,我们需要提供可执行文件的文件名,可以忽略其扩展名.EXE:$prog1
在一些系统中,即使文件就在当前目录或文件夹中,你也必须显式指出文件的位置。在此种情况下我们键入:$ .\prog1 “.”后面跟一个反斜线指出该文件在当前文件目录中。
为了在UNIX系统中运行一个可执行文件,我们需要用的全文件名,包括文件的扩展名:$ a.out
如果需要制定文件位置,我们需要键入:$./a.out “.”后面跟一个斜线指出该文件在当前文件目录中。
访问main的返回值的方法依赖于系统。在UNIX和Windows系统中,执行完一个程序后,都可以通过echo命令获取其返回值。
在UNIX系统中,通过如下命令获取其状态:$ echo $?
在Windows系统中查看状态可以键入:$ echo %ERRORLEVEL%
1.2、初识输入输出
C++语言并没有定义任何的输入输出(IO)语句,取而代之,包含了一个全面的标准库(standard library)来提供IO机制。
iostream库包含istream和ostream,分别表示输入流和输出流。
标准输入输出对象:
为了处理输入,我们使用一个名为cin的istream类型的对象。这个对象也被称为标准输入。
对于输出,我们使用一个名为cout的ostream类型的对象。此对象称为标准输出。
标准库还定义了其他的两个ostream对象,名为cerr和clog。
cerr:来输出警告和错误,因此它也被称为标准错误。
clog:用来输出程序运行时的一般信息。
一个使用IO库的程序:
#include<iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1 = 0,v2 = 0;
std::cin >> v1 >>v2;
std::cout << "The sum of" << v1 << "and" << v2 << "is" <<v1+v2 <<std::endl;
return 0;
}
#include<iostream> 告诉我们想要使用iostream库。夹扩号中的名字指出了一个头文件(header);
向流写入数据:
main的函数体的第一条语句执行了一个表达式(expression)。这句话中的表达式使用了输出流运算符(<<)。在标准库输出上的打印消息:
std::cout << "Enter two numbers:" << std::endl;
<<运算符接受两个运算对象:左侧的运算对象必须是一个ostream对象,右侧的运算对象是要打印的值。
相当于:
std::cout << "Enter two numbers:";
std::cou <<std::endl;
第一个输出运算符给用户打印一条消息。这消息是一个字符串字面值常量(string literal),是用一对双引号包围的字符序列。
第二个输出打印endl,这是一个被称为操作符(manipulator)的特殊值。写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
使用标准库中的名字:
前缀std::指出cout和endl是定义在名为std的命名空间(namespace)中的。通过作用于运算符(::)来指出我们想使用定义在命名空间std中的名字cout。
从流读取数据:
int v1 = 0,v2 = 0;
将两个定义的变量初始化,定义为int类型,int是一种内置类型,用来表示整数。
std::cin >> v1 >>v2;
输入运算符(>>)与输出运算符类似,它接受一个istream作为其左侧的运算对象,接受一个对象作为其右侧的运算对象。
相当于:
std::cin >> v1;
std::cin >> v2;
完成程序
(1.2节)主要对程序进行了讲解,头文件,命名空间,输入输出流的操作,以及程序的书写规范。
1.3、注释简介
注释帮助读者理解程序。
注释通常用于概述算法,确定变量的用途或者解释晦涩难懂的代码段。
C++中注释的种类:
单行注释以双斜杠(//)开始,以换行符结束。
使用继承C语言的两个界定符(/*和*/),编译器将/*和*/之间所有内容都当做注释。
注释界定符不能嵌套
1.4控制流
语句一般是顺序执行的,当程序设计语言提供了多种不同的控制流语句,允许我们写出更为复杂的执行路径。
1.4.1 while语句
while语句反复的执行一段代码,直至给定条件为假为止。
while语句的形式为:
while(condition)
stdtment
while语句的执行过程是交替地检查condition条件和执行关联的语句statement,直至condition为假时停止。
condition(条件)就是一个产生真和假的结果的表达式。
1.4.2 for语句
每个for语句都包含两部分:循环头和循环体。
循环头控制循环体的执行次数,它由三部分组成:一个初始化语句,一个循环条件,以及一个表达式。
例如:
for(int val =1; val <= 10; ++val)sum += val;
简要描述for循环的总体执行流程:
1、创建变量val,将其初始化为1
2、检查val是否小于等于10。若检查成功,执行for循环体。若失败,退出循环,继续执行循环体之后的第一天语句。
3、将val的值增加到1。
4、重复第二步的检查条件,只要条件为真就继续执行剩余步骤。
1.4.3、读取输了不定的输入数据
while(std::cin >> value)
从键盘中输入文件结束符:Windows:Ctrl+Z ; UNIX和Mac OS X系统 :Ctrl +D
1.4.4、 if语句
if(condition)
stdtment
若是condition为真则执行stdtment,反之为假不执行stdtment。
1.5、类简介
在C++中,我们通过定义一个类(class)来定义自己的数据结构。类机制是c++最重要的特征之一。
类定义对象:假设sales_item类定义了一个Sales_item的类型 :
sales_item item;
定义一个Sales_item类型的对象item。
什么是类的成员函数?
成员函数是定义为类的一部分的函数,有时候也被称为方法(method)。
使用点运算符“.”来表达我们需要访问的成员函数,点运算符只能用于类类型的对象,其左侧必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。
调用运算符(())来调用一个函数。调用运算符是一对圆括号,里面存放实参列表。
本章主要介绍了:程序的结构,标准的输入输出流,控制流:while、for、if,对类有一个初步的认识:定义类的对象,访问类的成员等。