C++第1章C++的初步知识.ppt

上传人:za****8 文档编号:6269854 上传时间:2020-02-21 格式:PPT 页数:38 大小:317KB
返回 下载 相关 举报
C++第1章C++的初步知识.ppt_第1页
第1页 / 共38页
C++第1章C++的初步知识.ppt_第2页
第2页 / 共38页
C++第1章C++的初步知识.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
C 面向对象程序设计 三系 汤亮sqctang tel 13179560863 第1章C 的初步知识 1 1从C到C 1 2最简单的C 程序1 3C 对C的扩充1 4C 程序的编写和实现 1 1从C到C 为了解决软件危机 20世纪80年代提出了面向对象的程序设计思想 在这种形势下 C 应用而生 带类的C语言C 1988年C 1 01989年C 2 0类的多重继承1991年C 3 0增加了模板C 4 0增加了异常处理1997年ANSIC C 对C的增强 具体体现在 在原来面向过程的机制基础上 对C语言的功能作了不少扩充增加了面向对象的机制 1 2最简单的C 程序 例1 1 输出一行字符 ThisisaC program include 用cout输出时需要用此头文件usingnamespacestd 使用命名空间stdintmain cout ThisisaC program n 用C 的方法输出一行return0 关于程序的几点说明 intmain 在C 程序中 一般在main函数前加int 注释作用和 的作用一样 但两者又有区别cout 用cout进行数据的输出iostream 使用cout和cin时要用 includeusingnamespacestd 使用命名空间 使用 include时就要用usingnamespacestd 1 2最简单的C 程序 1 2最简单的C 程序 例1 2 求a和b两个数之和 求两数之和 本行是注释行 include 预处理命令usingnamespacestd 使用命名空间stdintmain 主函数首部 函数体开始inta b sum 定义变量cin a b 输入语句sum a b 赋值语句cout a b sum endl 输出语句return0 如程序正常结束 向操作系统返回一个零值 1 3C 对C的扩充 1 3 1C 的输入输出1 用cout进行输出 includeusingnamespacestd intmain inta 5 b 10 charc1 A c2 B cout a endl cout a b endl cout a setw 5 b endl cout c1 c2 endl cout c1 c2 65 endl cout char c1 c2 65 endl return0 2 用cin进行输入 提取运算符 例1 4 include includeusingnamespacestd intmain inta b c charc1 c2 cin a cin b c cin c1 c2 cout a a b b c c endl cout c1 c1 c2 c2 endl return0 1 3C 对C的扩充 1 3C 对C的扩充 1 3 2用const定义常变量例1 5 includeusingnamespacestd definePI3 14 defineRa bintmain inta b floatarea cin a b area PI R R cout 面积为 area endl return0 1 3C 对C的扩充 例1 6 includeusingnamespacestd intmain constfloatPI 3 14 inta b floatarea cin a b area PI a b cout 面积为 area endl return0 1 3C 对C的扩充 1 3 3函数原型声明在C 中规定 如果函数调用的位置在函数定义之前 则要求在函数调用之前必须对所调用的函数作函数原型说明 函数原型说明的形式 函数类型函数名 函数参数列表 如 intmax inta intb intmax int int 1 3C 对C的扩充 1 3 4函数的重载例1 7用函数实现求2个整数或3个整数中的最大者 includeusingnamespacestd intmax2 inta intb returna b a b intmax3 inta intb intc intmax max a b a b max max c max c returnmax intmain intx y intm n s cin x y cin m n s cout x y中的较大者是 max2 x y endl cout m n s中的最大值是 max3 m n s endl return0 1 3C 对C的扩充 includeusingnamespacestd intmax inta intb returna b a b intmax inta intb intc intmax max a b a b max max c max c returnmax intmain intx y intm n s cin x y cin m n s cout x y中的较大者是 max x y endl cout m n s中的最大值是 max m n s endl return0 1 3C 对C的扩充 关于函数重载的说明 只有当函数名相同 而函数的参数个数不同或参数的类型不同时才能实现函数的重载 但只有函数的返回值类型不同时是不能实现函数重载的 如 intmax inta intmax inta intb intmax floata 能实现重载而voidmax inta 与intmax inta 是不能实现函数重载的 1 3C 对C的扩充 1 3 5函数模板函数模板 实际上是一个通用的函数 其函数类型和形式类型不具体指定 用一个虚拟的类型来代替 这个通用的函数称为函数模板 例1 8求3个数中最大值的数 分别考虑整数 实数 长整型的情况 1 3C 对C的扩充 includeusingnamespacestd intmax inta intb intc 求3个整数中的最大者 if b a a b if c a a c returna floatmax floata floatb floatc 求3个实数中的最大者 if b a a b if c a a c returna longmax longa longb longc 求3个长整数中的最大者 if b a a b if c a a c returna intmain inta b c floatd e f longg h i cin a b c cin d e f cin g h i intm m max a b c cout max i m endl 函数值为整型floatn n max d e f cout max f n endl 函数值为实型longintp p max g h i cout max l p endl 函数值为长整型return0 1 3C 对C的扩充 includeusingnamespacestd templateTmax Ta Tb Tc if b a a b if c a a c returna intmain inti1 8 i2 5 i3 6 i doubled1 56 9 d2 90 765 d3 43 1 d longg1 67843 g2 456 g3 78123 g i max i1 i2 i3 d max d1 d2 d3 g max g1 g2 g3 cout i max i endl cout d max d endl cout g max g endl return0 1 3C 对C的扩充 1 3 6有默认参数的函数函数原型 floatvolume floath floatr 2 5 函数调用 floatv1 volume 2 h的值为2 r的值为2 5floatv2 volume 2 3 h的值为2 r的值为3设有函数原型 floatvolume floath 2 floatr 函数调用 floatv1 volume 5 实参与形参的结合是从左至右顺序进行的 即第n个实参必然和第n个形参结合 因此将5传递给h 而r则没有对应的实参值 所以指定默认值的参数必须放在形参列表中的最右端 注意点 不能重复定义函数的默认值 一个函数不能既作为重载函数 又作为有默认参数的函数 1 3C 对C的扩充 1 3 7变量的引用 1 引用的概念 在C 中 变量的 引用 就是变量的别名 因此引用又称为别名 建立 引用 的作用是为一个变量起另一个名字 以便在需要的时候可以方便 间接地引用该变量 对一个变量的 引用 的所有操作 实际上都是对其所代表的 原来的 变量的操作 例 inta int 表示引用的符号 b即为a的一个别名 a b在内存中占用同一个内存单元 1 3C 对C的扩充 2 引用的简单使用例1 9了解引用和变量的关系 includeusingnamespacestd intmain inta 10 int 1 3C 对C的扩充 3 关于引用的简单说明引用并不是一种独立的数据类型 它必须与某一种类型的数据相联系 声明引用时必须指定它代表的是哪个变量 即对它初始化 例 inta int 1 3C 对C的扩充 3 关于引用的简单说明区分 错误 企图重新声明c为整型变量b的别名 1 3C 对C的扩充 4 将引用作为函数参数变量名作用函数的参数 值传递 includeusingnamespacestd voidswap inta intb 实现a和b的值互换 inttemp temp a a b b temp intmain inti 3 j 5 swap i j cout i j endl i和j的值未互换return0 1 3C 对C的扩充 4 将引用作为函数参数传递变量的指针 地址传递 includeusingnamespacestd voidswap int p1 int p2 通过形参改变了实参的值 int temp temp p1 p1 p2 p2 temp intmain inti 3 j 5 swap 1 3C 对C的扩充 4 将引用作为函数参数传递变量的别名 引用传递 includeusingnamespacestd voidswap int 1 3C 对C的扩充 5 对引用的进一步说明不能建立void类型的引用 因为任何实际存在的变量都有一种确定的类型 而不是void类型 不能建立引用的数组 charc 6 hello char p指向变量a 1 3C 对C的扩充 5 对引用的进一步说明可以建立指针变量的引用 如 inti 5 int p 正确 1 3C 对C的扩充 5 对引用的进一步说明可以用常量或表达式对引用进行初始化 但此时必须用const作声明 如 inti 5 const 1 3C 对C的扩充 1 3 8内置函数 内联 嵌函数 内置函数 函数类型前加inline关键字 内联函数在编译时将所调用函数的代码嵌入到主函数中 includeusingnamespacestd inlineintmax inta intb intc 这是一个内置函数 if b a a b if c a a c returna 求3个整数中的最大者intmain inti 7 j 10 k 25 m m max i j k cout max m endl return0 1 3C 对C的扩充 13 9作用域运算符 includeusingnamespacestd floata 13 5 intmain inta 5 cout a endl return0 includeusingnamespacestd floata 13 5 intmain inta 5 cout a endl cout a endl return0 1 3C 对C的扩充 1 3 10字符串变量1 定义字符串变量stringstr str 08计算机1 2班 要使用字符串功能 必须在程序的开头将 string 头文件包含进来 即加上 include2 对字符串变量的赋值stringstr1 08计算机1 2班 stringstr2 str2 08计算机1 2班 字符数组的赋值 charch 20 08计算机1 2班 1 3C 对C的扩充 2 对字符串变量的赋值stringstr1 06计算机专科1 2班 stringstr2 计算机应用与维护专业 若有str1 str2 则str1的值为 计算机应用与维护专业 若有str2 str1 则str2的值为 06计算机专科1 2班 而不用去考虑字符串的长度问题3 字符串变量的输入输出stringstr cin str cout str 1 3C 对C的扩充 4 字符串变量的运算用赋值运算符实现字符串复制str1 str2 其作用与strcpy str1 str2 用加法运算符实现字符串连接stringstr1 C stringstr2 program stringstr3 str1 str2 运算后str3的结果为 C program 用关系运算符实现字符串比较可以直接用关系运算符进行比较大小 1 3 11动态分配 撤销内存的运算符new和delete1 new运算符new运算符用于动态的申请所需的内存单元 返回指定类型的一个指针 它的语法格式为 指针 new数据类型 例如 int p p newint p 1 系统自动根据int类型的空间大小开辟内存单元 用来存放int型数据 并将首地址保存在指针p中 指针 new数据类型 整型表达式 例如 int p p newint 30 则系统分配int类型所占用的存储空间 同时将30存放到刚刚分配的内存单元中 指针p指向首地址 1 3C 对C的扩充 也可以用new运算符申请一块保存数组的内存单元 即创建一个数组 创建一维数组的语法格式为 指针 new数据类型 整型表达式 其中 表达式给出数组元素的个数 指针指向分配的内存首地址 指针的类型与new后的数据类型相同 例如 int p p newint 10 则系统为指针p分配了整型数组的内存 数组中有10个元素 1 3C 对C的扩充 2 delete运算符delete指针名 释放非数组内存单元例如 int p p newint p 1 deletep 例如 int p p newint 30 deletep delete 指针名 释放数组内存单元例如 int p p newint 10 delete 10 p 1 3C 对C的扩充 include includeusingnamespacestd structStudent charname 10 intnum charsex intmain Student p p newStudent strcpy p name WangFun p num 10123 p sex M coutnamenumsex endl deletep return0 1 3C 对C的扩充 妈妈新开了个淘宝店 欢迎前来捧场妈妈的淘宝点开了快半年了 主要卖的是毛绒玩具 坐垫 抱枕之类的 但生意一直不是很好 感觉妈妈还是很用心的 花了不少功夫 但是就是没有人气 所以我也来出自己的一份力 帮忙宣传一下 并且妈妈总是去五亭龙挑最好的玩具整理 发货 质量绝对有保证 另外我家就在扬州五亭龙玩具城旁边 货源丰富 质量可靠 价格便宜 欢迎大家来逛逛 扬州五亭龙玩具总动员 个人小广告
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!