您好,欢迎访问三七文档
-1-课程介绍课时:40学时,授课课外实践主要内容目标:面向具备C++基础知识的同学,介绍C++职业技能,提升解决实际应用的能力过程化编程:C++语言特性、指针、动态内存管理面向对象编程:类与对象、继承、多态、运算符重载标准模板库:容器、算法高级话题:模板、异常、输入输出流-2-课程教学内容第1章C++快速入门第2章指针与动态内存管理第3章类与对象第4章运算符重载第5章继承与多态第6章模板泛型编程基础第7章STL容器与迭代器第8章STL算法第9章输入输出流及异常第01章C++快速入门-4-本章内容安排C++程序结构集成开发环境C++基础语法C++进阶语法-5-HelloWorld-简单C++程序//helloworld.cpp#includeiostreamintmain(intargc,char**argv){std::cout“Hello,World!”std::endl;return0;}-6-注释//helloworld.cpp#includeiostreamintmain(intargc,char**argv){std::cout“Hello,World!”std::endl;return0;}单行注释支持C语言风格的多行注释/*...*/-7-预处理指令//helloworld.cpp#includeiostreamintmain(intargc,char**argv){std::cout“Hello,World!”std::endl;return0;}编译过程:1)preprocess预处理2)Compile编译3)Link链接头文件通常包含函数的声明iostream包含了输入输出机制的声明-8-包含头文件在C语言中,头文件通常以.h作为扩展名如#includestdio.hC++中,标准库头文件不包括扩展名如#includeiostreamC++中,支持C语言库函数可以使用C方式,#includestdio.h,不提倡C++中,#includecstdio-9-输入输出//helloworld.cpp#includeiostreamintmain(intargc,char**argv){std::cout“Hello,World!”std::endl;return0;}std::cout是标准输出设备,可看成指向控制台的数据管道,通过将数据顺序输出到控制台std::endl表示输出回车换行-10-命名空间namespace命名空间是解决命名冲突的机制我们在自己的代码中定义函数foo()我们使用的第三方库中也定义了foo()函数调用foo()时,编译器无法确定相应的版本!将代码置于特定的命名空间中调用时通过限定命名空间作为前缀,解决访问冲突-11-输入输出//helloworld.cpp#includeiostreamintmain(intargc,char**argv){std::cout“Hello,World!”std::endl;return0;}std是标准库所用的命名空间-12-命名空间的使用将函数声明于命名空间中//namespaces.hnamespacemycode{voidfoo();}实现命名空间中的函数//namespaces.cpp#includeiostream#include“namespaces.h”namespacemycode{voidfoo(){std::cout“foo()calledinthemycode”std::endl;}}-13-命名空间中函数的调用通过命名空间前缀调用函数mycode::foo();引用命名空间,简化函数调用#include“namespaces.h”usingnamespacemycode;intmain(intargc,char**argv){foo();//Impliesmycode::foo();}-14-重写HelloWorld//helloworld.cpp#includeiostreamusingnamespacestd;intmain(intargc,char**argv){cout“Hello,World!”endl;return0;}-15-引用特定对象//helloworld.cpp#includeiostreamusingstd::cout;intmain(intargc,char**argv){cout“Hello,World!”std::endl;return0;}-16-输入操作C++建议使用cin和cout标准对象输入操作:,是cin的成员函数示例doublex;inty;cinxy;键盘变量-17-输入操作基本类型数据的输入整数、浮点数、字符串数值:跳过空白字符(空格、制表符、回车符),回车后解析数值直至非法字符字符串:读入字符串直至回车结束。-18-输入示例一inti;cini;floatf;cinf;12(CR)15.23(CR)i←12f←15.23-19-输入示例二inti;cini;floatf;cinf;12b23(CR)xxxxx(CR)i←12f←0?b残留在缓冲区中-20-输入示例三inti;cini;floatf;cinf;12.23(CR)xxxxx(CR)i←12f←0.23?i解析到小数点时结束-21-输出操作C++建议使用cout标准对象进行输出输入操作:,是cout的成员函数示例doublex,y;cinxy;cout“x+y=”x+yendl;显示器表达式-22-一些建议建议使用cin和cout进行输入输出自动识别数据类型,支持转义字符支持但尽量不要使用printf和scanf,需要使用格式控制符,容易出错。doublex=12.3,y=16.9;printf(“%d,%f\n”,x,y);scanf(“%f\n”,&x);-23-本章内容安排C++程序结构集成开发环境C++基础语法C++进阶语法-24-创建控制台工程-25-创建控制台工程指定工程路径和名称-26-创建控制台工程-27-创建控制台工程-28-建立源程序文件-29-建立源程序文件-30-编辑源程序输入代码-31-编译源程序-32-编辑多文件重复添加源文件,如添加add.cpp编辑源程序-33-引用其它文件中的内容#includeiostreamusingnamespacestd;intadd(int,int);intmain(){intx,y;cinxy;coutx+y=add(x,y)endl;return0;}在add.cpp中实现-34-添加现有的文件添加头文件添加源程序-35-本章内容安排C++程序结构集成开发环境C++基础语法C++进阶语法-36-标识符与关键字标识符避免使用下面的名称C++语言系统的关键字,如double、void等C++标准类库或对象,如cin和coutC语言中标准库函数名,如printfVC规定标识符的名称最长为247个,最好做到“见名知义”。-37-基本数据类型字符型:char整型:short、int、long(带符号型)无符号型:unsignedint等浮点型floatdoublelongdouble布尔型:bool,取值true和false,1字节-38-常量字面常量整型常量十进制:34、-28八进制:045十六进制:0x7B长整型后缀为l或L,无符号整型后缀u或U浮点型常量十进制形式:0.12、.13指数形式:1.2e9float后缀f或F,double后缀l或L-39-常量字面常量字符常量‘A’、‘c’转义字符:‘\n’字符串常量“HelloWorld”比较:0、‘\0’、‘0’、“0”-40-常量符号常量#definePI3.1415926命名常量定义:推荐使用constintArraySize=100;intarray[ArraySize];……constfloatPI=3.1415926;-41-常量示例#defineP1voidmain(){floatf=1.0;coutf+P/2endl;}运行结果1.0constfloatP=1;运行结果1.5-42-变量variables#includeiostreamusingnamespacestd;intmain(intargc,char**argv){intuninitializedInt;intinitializedInt=7;coutuninitializedInt“isarandomvalue”endl;coutinitializedInt“wasassignedaninitialvalue”endl;return(0);}变量类型、变量名、变量值变量定义时尽量初始化;C++中支持随地定义变量;新增类型:bool-43-类型转换显示转换boolsomeBool=(bool)someInt;boolsomeBool=bool(someInt);boolsomeBool=static_castbool(someInt);隐式转换longsomeLong=someShort;intsomeInt=someFloat;//someFloat为浮点类型static_cast最清晰有些情况下,隐式转换会造成精度损失编译器通常会警告-44-::运算符全局变量访问#includeiostreamusingnamespacestd;intx=6;//全局变量voidmain(){intx=1;coutxendl;//访问局部变量cout::xendl;//访问全局变量}运行结果16-45-数组ArrayintmyArray[10];for(inti=0;i10;i++){myArray[i]=0;}数组类型、数组名称、数组大小数组大小必须为常量数组下标从0开始-46-枚举类型enumPieceType{PieceTypeKing,PieceTypeQueen,PieceTypeRook,PieceTypePawn};PieceTypemyPiece=kPieceTypePawn;-47-定义结构体类型//employeestruct.hstructEmployeeInfo{charfirstInitial;charmiddleInitial;charlastInitial;intemployeeNumber;intsalary;};-48-结构体#includeiostream#include“employeestruct.h”usingnamespacestd;intmain(intargc,char**argv){EmployeeInfoanEmployee;anEmployee.firstInitial=‘M’;anEmployee.middleInitial=‘R’;anEmployee.lastInitial=‘G’;anEmployee.employeeNumber=42;anEmployee.salary=80000;...}-49-函数的声明和定义函数声明declarations也称为函数原型或函数签名,强调函数如何被访问,而不提供函数的实现代码intaddNumbers(intnumber1,intnumber2);函数定义definitionintaddNumbers(intnumber1,intnumber2){intresult=number1+number2;return(result);}-5
本文标题:01C++快速入门
链接地址:https://www.777doc.com/doc-5387876 .html