第01讲 初识C++的函数和对象  

需要了解的C语言知识

  C语言基本语法
  If else 语句
  For语句
  While语句
  数组定义
  函数定义
  指针
  结构体
  运算符

本节要点:

  1.1初识C++的函数和对象
  C与C++的关系(领会)
  掌握函数原型和命名空间的使用方法(综合应用)
  对象和预处理基本概念(领会)
  掌握C++程序的基本结构(综合应用)
  C语言回顾
  int x;
  该语句在C语言和C++中均可使用,x在C语言中称为变量,在C++中称为对象。
  C语言与C++的不同点:
  称呼不同
  C语言回顾
  struct point
  { float x;
   float y;
   };
  表示定义一种点数据类型,包含坐标x,y.
  定义完成后,point成为一种类型,使用方式类似int类型
  如:定义p1变量为点类型,写作:
  struct point p1; 或
  point p1;
  定义x变量为整型:
  int x;
  C语言回顾
  struct student
  { int num;
   char name[10];
   float grade;
  };
  若定义一种结构体记录学生信息包含学号,姓名,成绩,如何定义?
  定义s1变量为学生类型,写作:
  struct student s1;
  例1.1输入一个点的信息,求该点到原点的距离
  预处理命令,使用命名空间,声明函数,声明常量,定义结构体,
  主函数main
  求距离函数result
  第一章 需要了解的C语言知识 - 图1
  第一章 需要了解的C语言知识 - 图2
  第一章 需要了解的C语言知识 - 图3
  第一章 需要了解的C语言知识 - 图4
  例1.1主函数
  第一章 需要了解的C语言知识 - 图5
  第一章 需要了解的C语言知识 - 图6
  对程序的说明:

1.1 初识C++的函数和对象

  对程序的说明:

1.混合型语言

  C语言程序包含main函数
  面向对象语言没有main函数
  C++是混合型语言
  第一章 需要了解的C语言知识 - 图7

2.注释方式

  //
  //…
  第一章 需要了解的C语言知识 - 图8

3.输入输出流

  cin和cout函数的简单使用
  cout<<后加要输出的内容,可以是对象或字符串,行末加分号,可用多个<<来分隔多个输出对象,<  cout<  cout<<”计算结果如下:”<  cout<<”输入两个实数:”;
  cin>>a.x>>a.y;
  cin和cout函数的简单使用
  cout<<后加要输出的内容,可以是对象或字符串,行末加分号,可用多个<<来分隔多个输出对象,<  cout<  cout<<”点(”<  <<a.y<<”)到原点的距离为:
   <  cout<<”点(”<  <   <  cin和cout函数的简单使用
  cin>>后加存放数据的对象,即变量,行末加分号,可用多个>>来分隔多个输入对象。
  cin>>x>>y,等价于 cin>>x;cin>>y;
  第一章 需要了解的C语言知识 - 图9

4.使用命名空间

  是C++语言中封装程序库名称的一种机制
  记忆:
  C++标准类库中的对象和函数都属于std命名空间
  使用这些对象和函数时要using namespace std
  第一章 需要了解的C语言知识 - 图10
  第一章 需要了解的C语言知识 - 图11
  使用std命名空间时注意:
  使用C语言中的头文件时,要写成“xxx.h”形式
  使用C++中的头文件则不能加上“.h”
  第一章 需要了解的C语言知识 - 图12
  第一章 需要了解的C语言知识 - 图13

5.对象定义及初始化

  int x;x=0;等价于 int x=0; C语言
  int x(0);C++语言等价于上两条语句。
  此种初始化语法在C++中称为构造函数语法
  第一章 需要了解的C语言知识 - 图14

6.函数原型及其返回值

  函数要有类型,若要得到处理结果则要使用return语句。
  第一章 需要了解的C语言知识 - 图15
  函数原型声明
  函数调用在函数定义之前时要对函数进行声明
  第一章 需要了解的C语言知识 - 图16
  第一章 需要了解的C语言知识 - 图17

7.const修饰符和预处理程序

  常量定义:#define PI 3.1415 (c语言)
  在变量定义之前加上const关键字,表示定义的变量值不可改变。
  const int PI=3.1415;
  const int PI(3.1415);
  对程序的说明:
  常量定义:#define PI 3.1415
  #define命令的特点:
  原样替换掉程序中出现的预定义宏名符号
  如:#define BUFFER 100
  若程序出现:x=BUFFER/3;x=?
  尽量选择const定义常量
  对程序的说明:
  const关键字的特点:
  利用const定义常量时必须给出常量的值,除非该常量是extern的。
  作业:(1)extern变量是什么样的变量?
  如:const int d;
    extern const;
  对程序的说明:
  C++预处理命令
  以#开始,分为宏定义,文件包含和条件编译
  作业:
  (2)写出C语言中预处理命令有哪些,举例说明每个命令含义及作用。
  (3)写出C语言和C++语言中#include命令的不同处

8.程序运行结果

  第一章 需要了解的C语言知识 - 图18

9.程序书写规则

  注意缩进对齐,使程序清晰明了

第02讲 认识C++语言面向过程编程的特点  

1.2 认识C++语言面向过程编程的特点

  本节要点:
  函数重载(领会)
  掌握C++的新数据类型(简单应用)
  动态分配内存(综合应用)
  熟练掌握引用的使用方法(综合应用)
  了解对指针使用const限定符的目的,方法(识记)
  了解泛型算法应用于普通数组的方法(识记)
  掌握数据的简单输入输出(简单应用)

1.2.1 函数重载(领会)

  本节要点:
  C++允许一个函数定义多个版本。
  使得一个函数完成多种功能。
  即:同一个函数名定义多次。
  重载函数max的调用形式:
  第一章 需要了解的C语言知识 - 图19
  max<1,2>=2
  max<11.1,12.2>=12.2
  max<7,2,9>=9
  第一章 需要了解的C语言知识 - 图20
  可否不声明?
  第一章 需要了解的C语言知识 - 图21
  重载函数的要点:
  函数名相同,参数个数不同,参数类型不同

1.2.2 C++的新数据类型(简单应用)

  第一章 需要了解的C语言知识 - 图22

1.void类型

  void表示无类型,或空类型。
  不能声明变量,只能声明函数返回值。
  表示函数无返回值。

2.bool型(逻辑型,布尔型)

  占1个字节。表示逻辑运算中的“真”“假”

3.整型(int long short)

  int、short至少16位
  long至少32位
  short不得比int长
  int不得比long 长

4.char型(字符型)

  占1个字节。

5.实型(float/double/long double)

  第一章 需要了解的C语言知识 - 图23

6.&取地址符

  int x; &x表示
  什么样的变量可以存放&x
  int *p;
  p是指针变量,指针变量能存放变量的地址。
  P=&x;

7.常量表示

  整型:
  0前缀表示8进制数,0x前缀表示16进制
  加L、l后缀表示长整型常量
  实型:
  F、f后缀表示浮点型常量(float)
  实数加L、l后缀表示long double型
  无前缀,无后缀的为double型
  0L
  123l
  05
  5
  0x5
  0xaf
  01

8.转义字符

  ‘\101’
  ‘\t’
  ‘\r’
  ‘\n’
  ‘\0’
  ‘\x41’

1.2.3 动态分配内存(综合应用)

  new 动态分配内存
  一般格式:
  指针变量=new类型[size];
  new 运算符得到新分配空间的首地址,赋值给指针变量后,可根据指针变量的加减运算来使用这些空间。
  delete 释放内存 使用完毕后要释放内存
  delete p;
  第一章 需要了解的C语言知识 - 图24

1.2.4 引用的使用方法(综合应用)

  C++中新的表示形式。
  引用即使用变量的别名。
  定义形式:数据类型&别名=对象名;
  作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。
  例如:intx; int&a=x;
  表示a是变量x的别名。
  一旦定义别名后则a和x完全等价。
  C++中新的表示形式。
  引用即使用变量的别名。
  定义形式:数据类型&别名=对象名;
  作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。
  例如:intx; int& a=x;
  表示a是变量x的别名。
  一旦定义别名后则a和x完全等价。
  C++中新的表示形式。
  引用即使用变量的别名。
  定义形式:数据类型&别名=对象名;
  第一章 需要了解的C语言知识 - 图25
  Cout<<x<<end1;
  Cout<<a<<end1;
  Cout<<r<<end1;
  Cout<<&x<<end1;
  Cout<<&x<<end1;
  Cout<<&x<<end1;
  25
  25
  25
  0013FF7C
  0013FF7C
  0013FF7C
  56
  56
  56
  0013FF7C
  0013FF7C
  0013FF7C
  使用引用时注意:
  1,不能定义引用的引用 int& &r=x;
  2,不能直接定义数据组的引用
  第一章 需要了解的C语言知识 - 图26
  第一章 需要了解的C语言知识 - 图27
  一般格式:typedef类型 类型别名
  使用typedef定义某类型别名后,可使用该别名来定义相关对象。
  例如:typedef long int lint;
  则 long int i;等价于 lint i;
  用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头
  引用数组名作参数
  第一章 需要了解的C语言知识 - 图28
  一般格式:typedef 类型 类型别名
  使用typedef定义某类型别名后,可使用该别名来定义相关对象。
  例如:typedef long int lint;
  则 long int i;等价于 lint i;
  Typedef使用说明
  第一章 需要了解的C语言知识 - 图29
  typedef用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头
  第一章 需要了解的C语言知识 - 图30

1.2.5 对指针使用const限定符(识记)

1.左值和右值

  表达式:E1=E2 E1是左值,是可被修改的
  int p,x=1;
  
p=2;  &p表示什么?

2.指向常量的指针

  const常量定义,
  表示const后的表达式不可改变,定义时必须给出表达式的值。
  int x=11;
  const int P;
  const int
P=&x;
  表示P是不可改变的。P不能在=左侧。
  P=&y; x=12;

3.常量指针

  const常量定义,
  表示const后的表达式不可改变,定义时必须给出表达式的值。
  int x=11;
  int const P;错!必须初始化
  int
const P =&x;
  表示P是不可改变的。P不能在=左侧。
  *p可改变。

4.指向常量的常量指针

  const常量定义,
  表示const后的表达式不可改变,定义时必须给出表达式的值。
  int x=11;
  const int const P =&x;
  表示P是不可改变的。
p不可改变。

1.2.6 泛型算法应用于普通数组(识记)

  掌握数据的简单输入输出(简单应用)
  泛型算法是C++
  标准模板库(Standard Template Library)
  提供的一组操作。利用这些操作可以简化数组操作。
  要使用这些操作必须包含头文件
  假定a,b是两个数组名,其长度为len
  操作示例:

1.reverse (a,a+len)

  将数组a中的元素顺序反转。(逆向)

2.copy (a,a+len,b)

  将a数组的内容原样复制给b数组
  reverse_copy (a,a+len,b)
  将a数组的内容反转后复制给b数组
  假定a,b是两个数组名,其长度为len

3.sort (a,a+len)

  将数组a中的元素按升序排序

4.sort (a,a+len,greater())

  将数组a中的元素按降序排序
  第一章 需要了解的C语言知识 - 图31
  5
  4
  3
  2
  1
  假定a,b是两个数组名,其长度为len

5.find (a,a+len,value)

  在数组a中查找值为value的元素,并返回位置指针
  假定a,b是两个数组名,其长度为len
  操作示例:

6.输出数组中的内容

  Copya,a+len, Ostream_iterator (cout,”字符串”))
  Ostream_iterator表示输出流操作符
  :表示要输出的数组类型
  Cout表示流输出操作
  “字符串”:表示分隔字符串
  本节要点:

1.2.7 数据的简单输入输出(简单应用)

  

1.3 程序的编辑、编译、运行