Transparancy 7(C++)北大青鸟

Transparancy 7(C++)北大青鸟

ID:44264958

大小:306.00 KB

页数:23页

时间:2019-10-20

Transparancy 7(C++)北大青鸟_第1页
Transparancy 7(C++)北大青鸟_第2页
Transparancy 7(C++)北大青鸟_第3页
Transparancy 7(C++)北大青鸟_第4页
Transparancy 7(C++)北大青鸟_第5页
资源描述:

《Transparancy 7(C++)北大青鸟》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、友员第七章回顾文件输入文件输出异常处理2目标友元函数友元类操作符重载3友元函数4-1非成员函数不能访问私有成员友员函数允许访问类的私有部分而不是成员4友元函数4-2类友元函数私有!闪开!只允许成员和友元访问5友元函数4-3classteacher{private:inta;public:teacher(){a=5;}friendintstud(teacher);};intstud(teachert1){return(t1.a);//因为stud()是一个友元}没有friend6友元函数4-4classTe

2、acher;//前向声明classStudent{private:intst_data;public:voidgetstuddata();friendvoiddisplay(Studentabc,Teacherxyz);};classTeacher{private:intth_data;public:voidgetteachdata();friendvoiddisplay(Studentabc,Teacherxyz);};voiddisplay(Studentabc,Teacherxyz){//某些代码}

3、我是大家的朋友类只有在声明之后才能被引用7友元函数的特性拥有访问类的私有部分的权限没有this指针可以置于类说明的私有或公有部分定义友元函数时,不需要使用类名和作用域解析操作符作为前缀8优点在接口设计的选择方面提供了自由度成员函数和友元函数具有同等的特权主要的区别:友元函数的调用方式类似于func(xobject),而成员函数的调用方式类似于object.func()设计者可以选择最有可读性的语法9缺点提高了编程的灵活性,但是违背了面向对象编程的原则在编码中对完整性的破坏可以在一定程度上加以控制必须在它要

4、访问的类中进行声明。没有源代码是无法完成的10友元类3-1当一个类的全部或者多数成员函数都必须访问访问另一个类时声明整个类为另一个类的友元11友元类3-2#includeclassbeta;//前向声明classalpha{private:inta_data;public:alpha(){a_data=10;}voiddisplay(beta);};classbeta{private:intb_data;public:beta(){b_data=20;}friendvoidalph

5、a::display(betabb);};类只有在声明之后才能被引用成员函数是友员12友元类3-3#includeclassbeta;//前向声明classalpha{private:intdata;public:friendclassbeta;//beta是一个友元类};classbeta{public:voiddisplay(alphad){//可以访问alphacout<

6、}};类只有在声明之后才能被引用13操作符重载2-1将现有的操作符与一个成员函数相关联并与其类的对象一起使用使下面的操作成为可能if(obj1>obj2){//...}其中,obj1和obj2是一个类的对象14操作符重载2-2编译器通过检查操作数的类型来选择重载操作符是多态性的一种形式运算多态性15注意要点重载不能改变操作符的基本功能也不能改变其优先级顺序置++(自增)和--(自减)只能被用作一元操作符可以使用重载的+操作符来对两个对象相乘,但是这将使得代码难以理解16不能被重载的操作符sizeof()操

7、作符圆点操作符(.)作用域解析操作符(::)条件操作符(?:)指向成员的指针操作符(.*)17优点使得程序更容易理解和调试obj3=obj1+obj2;而不是obj3.addobjects(obj1,obj2);18操作符函数重载操作符的实际指令operator关键字return_typeoperatorop(argumentlist);被重载的操作符19一元操作符的重载classtemp{private:intx,y;public:voidoperator++(void);};voidtemp::ope

8、rator++(void){x++;y++;}20二元操作符的重载两种方式作为成员函数接受单参数,该参数是这个操作符右边的值作为友员函数接收双参数21为字符串类重载+操作符Stringoperator+(Strings2)//操作符函数{Stringtemp;//创建一个临时对象strcpy(temp.s,s);//复制这个字符串strcat(temp.s,s2.s);//追加参数字符串return(temp);//返回临时对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。