第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
例1.1主函数
对程序的说明:
1.1 初识C++的函数和对象
1.混合型语言
C语言程序包含main函数
面向对象语言没有main函数
C++是混合型语言
2.注释方式
3.输入输出流
cin和cout函数的简单使用
cout<<后加要输出的内容,可以是对象或字符串,行末加分号,可用多个<<来分隔多个输出对象,<
cin>>a.x>>a.y;
cin和cout函数的简单使用
cout<<后加要输出的内容,可以是对象或字符串,行末加分号,可用多个<<来分隔多个输出对象,<
<
cin>>后加存放数据的对象,即变量,行末加分号,可用多个>>来分隔多个输入对象。
cin>>x>>y,等价于 cin>>x;cin>>y;
4.使用命名空间
是C++语言中封装程序库名称的一种机制
记忆:
C++标准类库中的对象和函数都属于std命名空间
使用这些对象和函数时要using namespace std
使用std命名空间时注意:
使用C语言中的头文件时,要写成“xxx.h”形式
使用C++中的头文件则不能加上“.h”
5.对象定义及初始化
int x;x=0;等价于 int x=0; C语言
int x(0);C++语言等价于上两条语句。
此种初始化语法在C++中称为构造函数语法
6.函数原型及其返回值
函数要有类型,若要得到处理结果则要使用return语句。
函数原型声明
函数调用在函数定义之前时要对函数进行声明
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.程序运行结果
9.程序书写规则
第02讲 认识C++语言面向过程编程的特点
1.2 认识C++语言面向过程编程的特点
本节要点:
函数重载(领会)
掌握C++的新数据类型(简单应用)
动态分配内存(综合应用)
熟练掌握引用的使用方法(综合应用)
了解对指针使用const限定符的目的,方法(识记)
了解泛型算法应用于普通数组的方法(识记)
掌握数据的简单输入输出(简单应用)
1.2.1 函数重载(领会)
本节要点:
C++允许一个函数定义多个版本。
使得一个函数完成多种功能。
即:同一个函数名定义多次。
重载函数max的调用形式:
max<1,2>=2
max<11.1,12.2>=12.2
max<7,2,9>=9
可否不声明?
重载函数的要点:
函数名相同,参数个数不同,参数类型不同
1.2.2 C++的新数据类型(简单应用)
1.void类型
void表示无类型,或空类型。
不能声明变量,只能声明函数返回值。
表示函数无返回值。
2.bool型(逻辑型,布尔型)
3.整型(int long short)
int、short至少16位
long至少32位
short不得比int长
int不得比long 长
4.char型(字符型)
5.实型(float/double/long double)
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;
1.2.4 引用的使用方法(综合应用)
C++中新的表示形式。
引用即使用变量的别名。
定义形式:数据类型&别名=对象名;
作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。
例如:intx; int&a=x;
表示a是变量x的别名。
一旦定义别名后则a和x完全等价。
C++中新的表示形式。
引用即使用变量的别名。
定义形式:数据类型&别名=对象名;
作用:别名与对象名对应同一个对象,共用同一段内存。对别名的修改会造成原对象的修改。
例如:intx; int& a=x;
表示a是变量x的别名。
一旦定义别名后则a和x完全等价。
C++中新的表示形式。
引用即使用变量的别名。
定义形式:数据类型&别名=对象名;
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,不能直接定义数据组的引用
一般格式:typedef类型 类型别名
使用typedef定义某类型别名后,可使用该别名来定义相关对象。
例如:typedef long int lint;
则 long int i;等价于 lint i;
用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头
引用数组名作参数
一般格式:typedef 类型 类型别名
使用typedef定义某类型别名后,可使用该别名来定义相关对象。
例如:typedef long int lint;
则 long int i;等价于 lint i;
Typedef使用说明
typedef用法总结:建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头
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)
2.copy (a,a+len,b)
将a数组的内容原样复制给b数组
reverse_copy (a,a+len,b)
将a数组的内容反转后复制给b数组
假定a,b是两个数组名,其长度为len
3.sort (a,a+len)
4.sort (a,a+len,greater())
将数组a中的元素按降序排序
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
Ostream_iterator表示输出流操作符
Cout表示流输出操作
“字符串”:表示分隔字符串
本节要点: