面向对象程序设计-3讲述.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计-3讲述

3.2 内联函数 1、内联函数定义 在一般函数定义前面加上保留关键字inline,该函数即被说明为内联函数。 例如: inline int add2(int n){return n+2;} 对于内联函数,C++有可能直接用函数体代码来替代对函数的调用,这一过程称为函数体的内联展开。(p82) 1 不能有循环、switch、递归等 例: #includeiostream.h inline float max(float a, float b) //内联函数,计算最大值 {…} void main() { float score[2]; //存放2个学生的分数 float max_score; max_score =max(score[0],score[1]); //调用内联函数求最大值,在编译时就已经被替换为了max的函数体,而不是本语句 cout“max score =” max_score endl; } 3.2 内联函数(续1完) 2 inline应该放在哪里 // a.h inline void foo(void); // a.c inline void foo(void) { } // b.c #include a.h void bar(void) { foo(); } 这种用法 inline 是不起任何作用的 只有这样: // a.h inline void foo(void) { } // b.c #include a.h void bar(void) { foo(); } 这样才能真正的内联; 内联是在编译期间处理的 3 内联函数用法总结 何时需要用 频繁使用 代码简单 潜在问题 增加编译后的代码长度 3.3 带默认形参值的函数 函数在定义时可以预先定义出默认的形参值。调用时如果给出实参,则用实参初始化形参;如果没有给出实参,则采用预先定义的默认形参值。 例: int area(int l=5,int w=5) { return l*w;} void main() { area(); //采用默认值5和5进行计算,返回结果25; area(10,2); //实参10和2传递给形参,返回结果20; area(2); //将值2传递给形参l,w采用默认值5,返回值10; } 5 注意: 形参默认值应在函数原型中给出(而不是在函数体中给出) 默认形参值必须按照从右向左顺序定义。调用时,实参按从左向右顺序初始化形参。(即如果有三个形参,实参为一个时,则会初始化第一个形参,而另外两个要采用默认值…)。所以,在有默认值的形参右边,不能出现无默认值的形参。 3.3 带默认形参值的函数(续1) 6 3.3 带默认形参值的函数(续2完) 例:判断以下用法是否正确? int area(int l,int w=4); int area(int l=3,int w) ; int area(int l=3,int w,int h=9); !错误,这样如果调用时为area(10),则10会赋值给l,而w得不到初始值,编译错误(missing default parameter for parameter 2) 7 3.4 函数的重载 重载:两个以上的函数,取相同的函数名,但形参的个数或者类型不同,编译器根据实参和形参的类型以及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。 C++允许功能相近的函数在相同的作用域内以相同函数名定义,从而形成重载。方便使用和记忆。 8 重载的要求: 1、形参类型不同 例: int add(int x,int y); float add(float x,float y); 2、形参个数不同 int add(int x,int y); int add(int x,int y,int z); 3.4 函数的重载(续1) 9 思考:是否可以用返回类型区分两个 重载函数? 第3讲 类与对象(1) 11 回顾:面向过程的设计方法 重点: 如何实现的细节和过程,将数据与函数分开。 形式: 主模块+若干个子模块(main()+子函数)。 特点: 自顶向下,逐步求精——功能分解。 缺点: 效率低,程序的可重用性差。 面向对象的思想 12 类与对象(本讲主题:只有一个类) 以学生信息管理为例: struct- class 成员函数 访问控制 构造函数 拷贝构造函数 析构函数 struct STD{ char name[12]; char gender; float

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档