类-面向对象程序设计.ppt

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

引入: 面向对象程序设计(OOP)按对象分割问题。 面向对象其实就是现实世界模型的一个自然延伸,现实世界中的任何实体,都可以看作一个对象,而对象之间通过消息相互作用。如:每一个账户可以看作一个个对象。 对同一类型对象抽象出其共同特性,形成类。 类是OOP中的主体 第3章 类(Classes) 教学内容: §定义类(Defining Class) §成员函 数(Member Functions) §程序结构( Program Structure) §静态成 员(Static Members) §友元(Friends) § 运算符重载(Operators Overloading ) § 定义类 class 类名 { private: 私用数据成员和成员函数 protected : 保护数据成员和成员函数 public: 公用数据成员和成员函数 }; 私有成员: 在关键字private后面声明,只允许本类中的成员函数访问,而类外部的任何函数都不能访问。 如果紧跟在类名后面声明私有成员,则关键字private可以省略。 保护成员: 与private类似,其差别表现在继承与派生时对派生类的影响不同,类外不能直接使用,但它的派生类的成员函数可以使用。 § 成 员 函 数 一、成员函数定义 1、在类中定义成员函数 在类中定义的成员函数一般规模都比较小,语句只有1~5句,而且特别的switch语句、循环语句不允许用。它们一般为内联函数,即使没有明确用inline标示。由于在类中定义的成员函数被默认为内联函数,所以在C++中,类定义通常可以在头文件中, 成员函数定义也伴随着进入头文件。 §程序结构(Program Structure) 一、类的程序结构 类定义文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(.cpp文件) 或: class Student{ static int number; string name; public: static void printNumber(); void print(){ coutname - students are number numbers\n; } };//----------------------------------- void Student::printNumber() { coutnumber total numbers\n; } §友元(Friends) 一、需要友元的原因 类的封装性,使类只能通过成员函数来访问私有成员。这是好事但有时会造成频繁调用成员函数,导致调用开销明显增多,影响了性能,从而对发挥C++编程优势不利。 友元类 友元类:是一个类,而且是另一个类的友元 友元类的声明:friend class 类名; 说明:类A和B,A被声明为B的友元类,则A类的所有成员函数都可以访问B类的私有成员和保护成员。 (2)值返回与引用返回 如果返回的是作用域范围内的对象,那么用值返回与引用返回都行,只是性能上不同而已。 (3)自增(++)运算符的重载 4、运算符重载为友元函数形式 重载为友元函数时,没有隐含的this指针,这样参数个数是原操作数个数(后置++、--除外) 小结: 如果运算符重载为成员函数,它的第一个操作数必须为本类的对象。如果第一个操作数不是本类对象时,就须把运算符重载为非成员函数的形式。 重载为类成员函数时,参数个数=原操作数个数-1,而后置++、--为了区别于前置形式,用一个int作为形参;当重载为非成员函数时,参数个数=原操作数个数 把运算符重载和类结合起来,可以在C++程序中定义出很有实用意义而使用方便的新的数据类型,同时也提高了C++的可扩展性。 练习: 设计一个复数类Complex, 重载运算符+、=、++(前置、后置)、、,使之能用于复数的加、赋值、自增、输入、输出等操作。 提示: class Complex{ double a,b; public: Complex operator+(Complex c); //实现Complex c1,c2; c1+c2; Complex operator=(string ); //实现Complex c; c=12+15i; …… }; Q:访问私有的静态数据成员需通过调用成员函数,而调用成员函数需绑定对象,而静态数据成员不属于任何对象,这显然不合理。而静态数据成员设计为公有的,又有失安全性和可维护性。 二、静态成员函数(Static Members Functions) class Student{ st

文档评论(0)

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

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

1亿VIP精品文档

相关文档