c++程序设计_i

上传人:第*** 文档编号:51794739 上传时间:2018-08-16 格式:PPT 页数:63 大小:2.12MB
返回 下载 相关 举报
c++程序设计_i_第1页
第1页 / 共63页
c++程序设计_i_第2页
第2页 / 共63页
c++程序设计_i_第3页
第3页 / 共63页
c++程序设计_i_第4页
第4页 / 共63页
c++程序设计_i_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《c++程序设计_i》由会员分享,可在线阅读,更多相关《c++程序设计_i(63页珍藏版)》请在金锄头文库上搜索。

1、Seeds for tomorrows worldC+程序设计ISeeds for tomorrows world一、C+对C的增强功能一、C+对C的增强功能 熟悉C+对C的功能扩充 理解C+在程序设计中的优势Seeds for tomorrows world1.1 C+的单行注释C的注释 C要求一条注释用 /* 和 */ 分界C+的注释 允许以 / 开始,到行尾结束/* this is a single line comment */ /* this is a multi linecomment */ / this is a single line comment/ this is a mu

2、lti linecommentC+中的 多行注释如 何写?Seeds for tomorrows world1.1 C+的单行注释C+的注释 C+是C的超集,因此支持/* */的注释方法建议 模块说明、函数说明等大块注释建议使用 /* */ 函数中的注释建议使用 / /* this is a multi linecomment */ Seeds for tomorrows world1.2 C+的输入/输出流 比较整数大小的程序 C 的写法#include main() int x=0,y=0;printf(“Input X:”);scanf(“%d”, printf(“Input y:”);

3、scanf(“%d”, if(xy) prinft(“xy”);else if(xy) prinft(“xy”);else prinft(“x=y”); Seeds for tomorrows world1.2 C+的输入/输出流 比较整数大小的程序 C+ 的写法#include main() cout x;cout y;if(xy) cout y”;else if(x” 输入流变量1变量2变量3 变量和一起使用时无需地址运算符 cout inline float cube(float s) return s * s * s; main() cout side;cout float value

4、 = 1.2345; main() int value = 7;cout float value = 1.2345; main() int value = 7;cout float getSize( float l, float w ) return l*w; float getSize( float r ) return 3.14*r*r; main() cout int square( int x ) return x*x; double square( double x) return x*x; main() cout int square( double x ) return x*x;

5、 double square( double x ) return x*x; Seeds for tomorrows world1.12 函数重载注意:重载函数必须具有不同的参数列表(类型,数量,顺序)int fun( int x, float y ) / 编译编译 器不区分返回值类值类 型 float fun( int x, float y )/ 形参顺顺序不同(类类型顺顺序,非名称顺顺序) int fun( int x, float y ) int fun( float x, int y )/ 形参个数不同 int fun( int x, int y ) int fun( int x, i

6、nt y, int z)/ 形参类类型不同 int fun( int x, int y ) float fun( float x, float y )int fun( int x, float y ) / 编译编译 器不区分形参名 int fun( int a, float b )Seeds for tomorrows world1.13 函数模板如果程序需要对不同的数据类型的数据进行相同的操作时,利用C+ 提供的函数模板功能,只需编写一个函数模板 C+编译器根据调用函数时的参数列表,产生单独的目标代码函数来 正确处理每种类型的调用 函数模板的定义template 函数模板定义义templat

7、e void printArray( T * array, const int count ) for( int i=0; ivoid printArray(T * array, const int count) for( int i=0; i”访问struct Timeint hour ; / 0-23int minute; / 0-59int second; / 0-59 Time timeObject, *pTime; pTime = cout hour; cout hour;注意:“.”和“- ”的优先级高于 “*” Seeds for tomorrows world2.2 C+中的类

8、可以理解为结构类型的延伸例程:用C实现打印时间#include /* 定义时间结义时间结 构类类型 */ struct Timeint hour; / 0-23int minute; / 0-59int second; / 0-59 ; /* 以24小时时格式打印 */ void print24HS( constconst Time Time();void setTime(int h, int m, int s);void print24HS();void print12HS();private:private: int m_hour; / 0-23int m_minute; / 0-59in

9、t m_second; / 0-59 ;#endif#endif成员访问 说明符类定义关 键字类名成员函数成员变量Seeds for tomorrows world2.2 C+中的类可以理解为结构类型的延伸/* time.cpp Time类类成员员函数定义义*/ #include #include “time.h”using manespace std;void Time:Time:SetTime(int h, int m, int s) m_hour = (h=0 类定义一般放在头文件中,文件名建议与类名相同 用预处理指令#ifndef #define 和 #endif 防止在程序 中多次包

10、含该头文件成员访问限定符public:(公有成员)限定的成员函数和成员变量能够被类 以外的程序访问private:(私有成员) 限定的成员函数和变量仅能够被该类 的成员函数访问(类的友元可以访问该类的私有成员)protected:(受保护成员) 类似私有成员,此外还可以被 该类的派生类的成员函数访问被成员访问限定符说明的成员为该限定符到下一个限定 符间声明的成员变量和成员函数成员访问说明符可以在类定义中多次出现Seeds for tomorrows world类定义2.2 C+中的类可以理解为结构类型的延伸成员函数 基本功能函数: 构造函数 公有成员,与类同名,无返回类型 建立对象时被自动调用

11、,主要用于初始化成员变 量 析构函数 公有成员,函数名:“类名”,无参数,无返回类 型 销毁对象时自动调用,主要用于释放资源等工作 其他基本功能函数 一般为公有成员,实现复制,比较大小,类型转换 等功能class 类名 成员访问说明符:成员变量成员函数成员访问说明符:成员变量成员函数成员访问说明符:;类名();类名(参数表);Seeds for tomorrows world类定义2.2 C+中的类可以理解为结构类型的延伸成员函数 接口函数: 成员访问接口函数 公有成员,用于访问类的成员变量 赋值函数名建议:“set变量名()” 读取函数名建议:“get变量名( )”or“变量名( )” 类行

12、为接口函数 公有成员,外部程序访问类提供的功能的函数 工具函数: 一般为私有或受保护成员,用于支持公有成员函数( 接口函数),实现类的功能class 类名 成员访问说明符:成员变量成员函数成员访问说明符:成员变量成员函数成员访问说明符:;Seeds for tomorrows world2.2 C+中的类可以理解为结构类型的延伸类定义class 类名 成员访问说明符:成员变量成员函数成员访问说明符:成员变量成员函数成员访问说明符:;成员变量类的属性:建议定义为私有或受保护成员辅助变量:建议定义为私有成员成员变量名前建议加 m_ 用于表明该变量为成员变量类成员变量的初始化不可以在类定义中实现,一

13、般在构 造函数中实现类的成员变量一般设计为私有或受保护的成员,外部程 序通过成员访问接口函数访问成员变量Seeds for tomorrows world2.2 C+中的类可以理解为结构类型的延伸类成员函数的定义类对象与类对象指针的声明#include 类定义文件返回类型 类名:成员函数名(参数表) #include 类定义文件类名 对象名;类名 * 对象指针名;对象指针 = 对象直指 = new 类构造函数(参数);类成员函数定义一般放在单独的cpp 文件中,文件名建议与类名相同类定义体外定义的成员函数需要用 “域名:”说明该函数所属的类(因 为不同的类可以有同名的成员函数 )小的成员函数可

14、以放在类定义体中 定义,此时不需要使用域运算符注意类对象指针的初始化可以用new动态创建类对象Seeds for tomorrows world2.2 C+中的类可以理解为结构类型的延伸类对象成员的访问类对象.公有成员 类对象.公有成员函数(实参)类对象指针-公有成员 类对象指针-公有成员函数(实参)类的作用域在类定义中声明的变量和函数属于类 的作用域在类的作用域内,类的成员可以可以 被该类的所有成员函数立即访问到。在类的作用域外,需要通过对象名、 对对象的引用或指向对象的指针来引 用类的成员通过对象的引用访 问成员时,使用 “.”还是“-”Seeds for tomorrows world2

15、.2 C+中的类可以理解为结构类型的延伸面向对象程序设计方法的优点 类的封装性简化了客户对类实现过程的依赖,提高了程序的可修 改性(信息隐藏,接口和实现的分离) 可以用被自动调用的构造函数初始化成员变量,提高了程序的稳 定性(初始状态下成员变量存储的是合法值) 可以用被自动调用的析构函数释放占用的资源,提高了程序的稳 定性(如释放动态分配的内存) 使用接口函数可以严格控制对私有数据的访问,提高了程序的稳 定性和灵活性(可以在接口函数中提供检查数据有效性的功能、 提供数据转换的功能) 使用面向对象的程序设计方法常常可以减小函数调用所需传递的 参数,提高效率(成员函数可以直接访问成员变量) 新类常常由某个类派生而来,可以大大提高软件设计的效率和软 件的可重用性Seeds for tomorrows world2.3 构造函数与析构函数构造函数特点 构造函数与类同名 构造函数为公有成员函数 构造函数没有返回类型,没有返回值 构造函数在创建类的对象时自动调用 在构造函数中使用默认参数/ time.hTime(int h=0, int m=0, int s=0);/ time.cpp Time:Time( int h, int m, int s) m_

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

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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