第1讲C++在非面向对象方面的特性1

上传人:qt****68 文档编号:52468886 上传时间:2018-08-22 格式:PPT 页数:79 大小:978.50KB
返回 下载 相关 举报
第1讲C++在非面向对象方面的特性1_第1页
第1页 / 共79页
第1讲C++在非面向对象方面的特性1_第2页
第2页 / 共79页
第1讲C++在非面向对象方面的特性1_第3页
第3页 / 共79页
第1讲C++在非面向对象方面的特性1_第4页
第4页 / 共79页
第1讲C++在非面向对象方面的特性1_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《第1讲C++在非面向对象方面的特性1》由会员分享,可在线阅读,更多相关《第1讲C++在非面向对象方面的特性1(79页珍藏版)》请在金锄头文库上搜索。

1、第1讲 C+在非面向对象方面的特性 *2C+在非面向对象方面的一些特性 C+是从C发展而来,C程序中的表达式、语句、函 数和程序的组织方法等在C+中仍可以使用。C+增加了一些非面向对象的新特性。这些新特性使C+程序比C程序更简洁或更安全。本讲我们主要介绍C+对C的非面向对象特性的扩展。即 C+与C的不同之处*3本讲主要内容C+的输入与输出(cin,cout)C+的内存申请与释放(new,delete)引用 const修饰符函数原型内联函数函数重载带有默认参数的函数*4C+的输入与输出(cin,cout)*5案例程序学生信息的输入和输出 【例1-1】学生信息的输入和输出。使用结构 体描述学生的属

2、性,通过操作学生结构体变 量进行学生基本信息的输入和输出。 *6/学生信息的输入和输出#include using namespace std;struct Student /学生结构体 char m_strName20; /姓名 char m_strID12; /编号 char m_cSex; /性别:0代表男 1代表女 char m_strMajor20; /专业 ;int main() Student Student1; /结构名可直接作为类型名 coutStudent1.m_strName;/从键盘上输入信息#include指示编译器在预处 理时,将文件iostream中的 代码嵌入到

3、本程序中该命令 所在位置。 iostream是C+系统定义的 一个头文件,它包含了C+ 风格的I/操作的有关信息 。cout、Student1.m_strID;coutStudent1.m_cSex; coutStudent1.m_strMajor; cout”使用C+I/O流进行输入输出时, 编译器会提供关于每个数值的类 型信息,所以没有必要使用格式 修饰符*8程序运行结果程序演示*9cin与cin是标准输入流对象,通常指标准输入设备即键盘 。运算符“”在C语言中表示 “位右移”操作。在 C+语言中,“”除了表示“右移”操作外,还可以用于输入。运算符“”在用于输入时,表示将从标准输入流(即键

4、盘)读取的数值传送给右方指定的变量。 运算符“”允许用户连续输入一连串的数据,它按照输入顺序从键盘上提取所要求的数据,并存入对 应的变量中。cin通常使用空格(或跳格,或换行符)来区分输入数据。*10cout与 using namespace std; int main() int i = 100; cout using namespace std; struct Student/学生结构体 char m_strName20; /姓名 char m_strID12; /编号 char m_cSex; /性别:0:男 1:女 char m_strMajor20; /专业 ;*19int main

5、() int *pnNumber; pnNumber = new int; /使用new运算动态分配整数空间 cout*pnNumber; Student *aStudent; /灵活的局部变量说明 aStudent = new Student*pnNumber; /使用new运算符分配动态数组 for(int i=0; iaStudenti.m_strName; coutaStudenti.m_strID; coutaStudenti.m_cSex; coutaStudenti.m_strMajor; *20for(i=0; i using namespace std; struct Stu

6、dent /学生结构体 char m_strName20; /姓名 char m_strID12; /编号 char m_cSex; /性别:0:男 1:女 char m_strMajor20; /专业 ;*33void StudentStat(Student *aStudent, int nNumber, int *pnMaleNumber, int *pnFemaleNumber) for(int i=0; i*pnNumber; Student *aStudent = new Student*pnNumber; /灵活的局部变量 说明 for(int i=0; iaStudenti.m_

7、strName; coutaStudenti.m_strID; coutaStudenti.m_cSex; coutaStudenti.m_strMajor; *35for(i=0; i using namespace std; void swap(double *dp1, double *dp2) double temp; temp = *dp1; *dp1 = *dp2; *dp2 = temp; int main() double d1 = 1.1, d2 = 2.2; cout using namespace std; void swap(double temp = dp1; dp1

8、= dp2; dp2 = temp; int main() double d1 = 1.1, d2 = 2.2; cout using namespace std; int main() float f = 1.1f; float cout using namespace std; const unsigned int ARRAY_SIZE1 = 20; const unsigned int ARRAY_SIZE2 = 12; struct Student /学生结构体 char m_strNameARRAY_SIZE1; /姓名 char m_strIDARRAY_SIZE2; /编号 ch

9、ar m_cSex; /性别:0:男 1:女 char m_strMajorARRAY_SIZE1; /专业 ;*47【例1-11】 使用#define定义常量的不安全性#include using namespace std;int main()double d1 = 2.0; #define C1 d1+d1#define C2 C1*C1cout using namespace std; int main() double d1 = 2.0; const double C1 = d1 + d1; const double C2 = C1 * C1; cout using namespac

10、e std; double sub(const double *dp, const double /不能修改指向常量的指针所指的内容 / rd = 12.7; /不能修改常引用所指变量的值 return *dp - rd; int main() double d1, d2; d1 = 33.3; d2 = 11.1; cout using namespace std; const unsigned int ARRAY_SIZE1 = 20; const unsigned int ARRAY_SIZE2 = 12; struct Student /学生结构体 char m_strNameARRA

11、Y_SIZE1; /姓名 char m_strIDARRAY_SIZE2; /编号 char m_cSex; /性别:0:男 1:女 char m_strMajorARRAY_SIZE1; /专业 ;*54void PrintInfo(Student student); /函数原型声明 int main() Student Student1; coutStudent1.m_strName; coutStudent1.m_strID; coutStudent1.m_cSex; coutStudent1.m_strMajor; PrintInfo(Student1); return 0; void

12、 PrintInfo(Student student) cout using namespace std; void PrintInfo(int m, int n);int main() int i, j; for(i =1; iStudent1.m_strName; coutStudent1.m_strID; coutStudent1.m_cSex; coutStudent1.m_strMajor; PrintInfo(Student1); coutStudent1.m_strName; PrintInfo(Student1); PrintInfo(:nStudentNumber); ret

13、urn 0; *66void PrintInfo(Student student) cout using namespace std; double add(double d1, double d2); double add(double d1, double d2, double d3); int main() double d1, d2, d3; d1 = 1.1; d2 = 2.2; d3 = 3.3; coutd1+d2=add(d1, d2)endl; coutd1+d2+d3=add(d1, d2, d3)endl; return 0; double add(double d1,

14、double d2) return d1 + d2; double add(double d1, double d2, double d3) return d1 + d2 + d3;*69说明(3)仅仅通过函数的返回值类型不同不能实现函数 重载。例如,下面的代码不能实现函数重载,会 出现编译错误。 int add(int i, int j);double add(int i, int j);这是因为在进行函数调用时,这两个函数的调用形 式是相同的(例如,都是“add(a,b);”),编译器 无法判断哪一个函数与调用形式相匹配。*70带有默认参数的函数*71带有默认参数的函数 在C+中,可以为函

15、数的形参提供默认值。 通过默认值,可以在调用函数时省略对该 形参的参数传递。*72【例1-18】 通过带默认参数的函数,对信息输入/输 出的语言类型进行控制。 当函数的语言类型参数取默认值0时,信息的输入/输 出语言均为中文; 当函数的语言类型参数取值为1时,信息的输入/输出 语言为英文。/带默认参数的函数nLanType:0(English),1(中文)void InputInfo(Student void PrintInfo(Student student, int nLanType = 0); void PrintInfo(int nStudentNumber, int nLanType = 0);*73 void PrintInfo(int nStudentNumber, int nLanType) if(nLanType = 0) cout“学生的人数为: “nStudentNumberendl; els

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号