C++程序设计:短学期复习
《C++程序设计:短学期复习》由会员分享,可在线阅读,更多相关《C++程序设计:短学期复习(10页珍藏版)》请在装配图网上搜索。
1、复 习一、c语言扩充 C+应用程序的结构老师类老师类 学生类学生类 张三张三 李四李四 王萍王萍 赵英赵英 类对象类对象陈老师陈老师 实例对象实例对象 C+程序是一组相互通信的对象程序是一组相互通信的对象main主控对象主控对象C+C+应用程序设计:应用程序设计:1.定义应用需要的类对象;2.定义主控对象,完成对象间的通信;内联、重载和引用内联、重载和引用 1 1 内联内联 内联的作用和特点 inline fac(int i)return i2?1:n inline fac(int i)return i2?1:n*fac(n-1);fac(n-1);编译器在所有调用这个函数的地方将其实际的代码
2、装上。内联函数要出现在每一调用该函数的源文件之中,所以一般放在头文件中。内联函数调用,编译器做类型检查,保证非法类型不传入;宏的优点是传入什么类型,返回同一类型。文件1文件2文件minline fac(int i)inline fac(int i)fac(int i)fac(int i)fac(int i)fac(int i).h文件文件1文件2文件mfac(int i)fac(int i)fac(int i)fac(int i)fac(int i)fac(int i).h文件inline fac(int i)inline fac(int i)2 2 重载函数重载函数 C中求绝对值的函数:in
3、t iabs(int I);long labs(long l);double fabs(double d);C+C+用同一个函数名用同一个函数名 abs()abs()实现上面,用函数参数来区别到底调用哪个函数。实现上面,用函数参数来区别到底调用哪个函数。所以把所以把同一作用域内名字相同,但参数不同的同一作用域内名字相同,但参数不同的函数称为重载函数。这得益于函数函数称为重载函数。这得益于函数原型不仅给出函数名,而且指出了参数类型。原型不仅给出函数名,而且指出了参数类型。为了保证编译器根据参数类型识别重载函数,必须保证重载函数的参数不同。为了保证编译器根据参数类型识别重载函数,必须保证重载函数的
4、参数不同。参数类型的次序参数个数参数类型重载函数的参数差别 1、同名函数,仅返回值类型不同,但参数相同;2、两同名函数,仅用const或引用使参数类型有所不同;ex 10.int print(const int&);int print(int);3、加修饰符使参数有所不同,取决于实参的具体类型;ex 11.void print(unsigned int);void print(int);/print(1l);/出错出错 print(1u);/正确正确4、缺省参数有时也能导致二义性;ex 12.void print(int a,int b=1);void print(int a);/print(
5、1);/二义性二义性 以下几种可能出现二义性:二、类和对象1 类定义类定义与结构不同之处是成员访问说明符。publicprotectedprivate访访问问说说明明符符除该类的成员函数外,谁都不得访问除该类的成员函数外,谁都不得访问程序中所有函数都可访问程序中所有函数都可访问可以省去可以省去类的实例也就是所谓的对象:类的实例也就是所谓的对象:stack sta1;stack*pstack=new stack;堆栈的类版本:class stack private:char v100;char*p;public:void push(char c)/char pop()/;可用一特殊成员函数(可用
6、一特殊成员函数(构造函数构造函数)初始化,每当创建对象时系统自动调用)初始化,每当创建对象时系统自动调用此函数。此函数。名字与类相同,无返回值,公有成员函数名字与类相同,无返回值,公有成员函数类的定义,初始化无效类的定义,初始化无效6.3 构造函数和析构函数构造函数和析构函数 class c int n=0;int rint=n;/.构造函数可以重载。例如:即可以有缺省构造函数,同时又有一个带参构造函数,构造函数可以重载。例如:即可以有缺省构造函数,同时又有一个带参构造函数,这时要注意二义性。这时要注意二义性。v v数组是动态分配的,出作用域并不自动释放。数组是动态分配的,出作用域并不自动释放
7、。析构函数类名前加,无返回值,无参数(不能重载)2 静态类成员静态类成员 class CTest public:static int count;/;int CTest:count=0;/由于这种静态类成员独立于任何类对象存在,用由于这种静态类成员独立于任何类对象存在,用:定义,而无需引用类实例。定义,而无需引用类实例。Static Static 成员和整个程序作业一样持久,但作用域仅限于此类。另外,其它访成员和整个程序作业一样持久,但作用域仅限于此类。另外,其它访 问也是受控的(公有、私有、保护的)。问也是受控的(公有、私有、保护的)。类中声明类中声明 类外定义和初始化类外定义和初始化静态成员函数:静态成员函数:class CTest public:static int getCount()/;void main()int count=CTest:getCount();/无论CTest创建多少个实例,count将严格只存放一个拷贝。4 派生类派生类 派生类的概念派生类的概念 派生类的定义派生类的定义 派生类的构造函数派生类的构造函数 派生类的继承权限派生类的继承权限
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。