欢迎来到天天文库
浏览记录
ID:49215793
大小:64.00 KB
页数:12页
时间:2020-02-01
《友元虚函数静态成员.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、友元函数、虚函数、静态成员1.1友元函数的说明及使用如果在一个类中用关键字friend对一个不属于该类的外部函数进行说明,则该外部函数就成为该类的友元函数,它可以访问该类的任何成员。1友元函数#includeclassA{inta,b;friendvoidprint(A);public:A(intx,inty){a=x;b=y;}friendvoidshow(A*p){cout<a<<''<b<<'';}};voidprint(At){cout<2、idmain(){Aa1(10,20);print(a1);show(&a1);}1.2友元成员函数及友元类一个类的友元函数可以是另一个类的成员函数,并且,如果将一个类说明为某类的友元类,则友元类的所有成员函数均为该类的友元函数。voidA::addB(B&t){a+=t.a;b+=t.b;}voidA::print(B&t){addB(t);cout<3、ludeclassB{inta,b;public:voidprint(){cout<4、C++中的虚函数主要用来实现程序运行的多态性。所谓多态性是指发出同样的消息(如函数的调用)被不同类型的对象接收时导致不同的行为。VC++的多态性有两种:动态多态性和静态多态性。2.1虚函数的定义及使用定义类的成员函数时,如果使用关键字“virtual”来修饰,则表示将该函数说明为虚函数。虚函数一定是类的成员函数,其多态性要通过类的继承关系来实现。如果将类中的函数说明为虚函数,则该类的派生类中相同原型的函数(同名,且参数类型、顺序及个数都相同)均具有虚特性而不管其是否用关键字”virtual”修饰。虚函数主要用来实现程序的动态多态性。classA{public:v5、irtualvoidf1(){cout<<“A::f1()”<f1();pa=&b1;pa->f1();}关于虚函数时,有以下几点说明:(1)虚函数用于不同的有继承关系的类中的相同原型的函数(同名,且参数类型、顺序及个数都相同),仅函数名相同则属于函数的重载;单独的一个虚函数没有实际意义。(2)虚函数的多态性必须6、通过相同的指针来实现,通过对象名来调用虚函数不能体现虚函数多态性。一般来说,实现虚函数的多态性是通过基类的指针指向不同的对象来处理虚函数的。(3)虚函数是类的成员函数,但不能是静态成员函数,更不能是友元函数。友元函数不是类的成员。(4)如果派生类中没有重新定义虚函数,则不能体现虚函数的多态性。classA{public:virtualvoidf1(){cout<<“A::f1()”<7、voidf4(){cout<<“A::f4()”<f1();pa->f2();pa->f3(5);pa->f4();}ClassB:publicclassA{public:virtualvoidf1(){cout<<“B::f1()”<
2、idmain(){Aa1(10,20);print(a1);show(&a1);}1.2友元成员函数及友元类一个类的友元函数可以是另一个类的成员函数,并且,如果将一个类说明为某类的友元类,则友元类的所有成员函数均为该类的友元函数。voidA::addB(B&t){a+=t.a;b+=t.b;}voidA::print(B&t){addB(t);cout<3、ludeclassB{inta,b;public:voidprint(){cout<4、C++中的虚函数主要用来实现程序运行的多态性。所谓多态性是指发出同样的消息(如函数的调用)被不同类型的对象接收时导致不同的行为。VC++的多态性有两种:动态多态性和静态多态性。2.1虚函数的定义及使用定义类的成员函数时,如果使用关键字“virtual”来修饰,则表示将该函数说明为虚函数。虚函数一定是类的成员函数,其多态性要通过类的继承关系来实现。如果将类中的函数说明为虚函数,则该类的派生类中相同原型的函数(同名,且参数类型、顺序及个数都相同)均具有虚特性而不管其是否用关键字”virtual”修饰。虚函数主要用来实现程序的动态多态性。classA{public:v5、irtualvoidf1(){cout<<“A::f1()”<f1();pa=&b1;pa->f1();}关于虚函数时,有以下几点说明:(1)虚函数用于不同的有继承关系的类中的相同原型的函数(同名,且参数类型、顺序及个数都相同),仅函数名相同则属于函数的重载;单独的一个虚函数没有实际意义。(2)虚函数的多态性必须6、通过相同的指针来实现,通过对象名来调用虚函数不能体现虚函数多态性。一般来说,实现虚函数的多态性是通过基类的指针指向不同的对象来处理虚函数的。(3)虚函数是类的成员函数,但不能是静态成员函数,更不能是友元函数。友元函数不是类的成员。(4)如果派生类中没有重新定义虚函数,则不能体现虚函数的多态性。classA{public:virtualvoidf1(){cout<<“A::f1()”<7、voidf4(){cout<<“A::f4()”<f1();pa->f2();pa->f3(5);pa->f4();}ClassB:publicclassA{public:virtualvoidf1(){cout<<“B::f1()”<
3、ludeclassB{inta,b;public:voidprint(){cout<4、C++中的虚函数主要用来实现程序运行的多态性。所谓多态性是指发出同样的消息(如函数的调用)被不同类型的对象接收时导致不同的行为。VC++的多态性有两种:动态多态性和静态多态性。2.1虚函数的定义及使用定义类的成员函数时,如果使用关键字“virtual”来修饰,则表示将该函数说明为虚函数。虚函数一定是类的成员函数,其多态性要通过类的继承关系来实现。如果将类中的函数说明为虚函数,则该类的派生类中相同原型的函数(同名,且参数类型、顺序及个数都相同)均具有虚特性而不管其是否用关键字”virtual”修饰。虚函数主要用来实现程序的动态多态性。classA{public:v5、irtualvoidf1(){cout<<“A::f1()”<f1();pa=&b1;pa->f1();}关于虚函数时,有以下几点说明:(1)虚函数用于不同的有继承关系的类中的相同原型的函数(同名,且参数类型、顺序及个数都相同),仅函数名相同则属于函数的重载;单独的一个虚函数没有实际意义。(2)虚函数的多态性必须6、通过相同的指针来实现,通过对象名来调用虚函数不能体现虚函数多态性。一般来说,实现虚函数的多态性是通过基类的指针指向不同的对象来处理虚函数的。(3)虚函数是类的成员函数,但不能是静态成员函数,更不能是友元函数。友元函数不是类的成员。(4)如果派生类中没有重新定义虚函数,则不能体现虚函数的多态性。classA{public:virtualvoidf1(){cout<<“A::f1()”<7、voidf4(){cout<<“A::f4()”<f1();pa->f2();pa->f3(5);pa->f4();}ClassB:publicclassA{public:virtualvoidf1(){cout<<“B::f1()”<
4、C++中的虚函数主要用来实现程序运行的多态性。所谓多态性是指发出同样的消息(如函数的调用)被不同类型的对象接收时导致不同的行为。VC++的多态性有两种:动态多态性和静态多态性。2.1虚函数的定义及使用定义类的成员函数时,如果使用关键字“virtual”来修饰,则表示将该函数说明为虚函数。虚函数一定是类的成员函数,其多态性要通过类的继承关系来实现。如果将类中的函数说明为虚函数,则该类的派生类中相同原型的函数(同名,且参数类型、顺序及个数都相同)均具有虚特性而不管其是否用关键字”virtual”修饰。虚函数主要用来实现程序的动态多态性。classA{public:v
5、irtualvoidf1(){cout<<“A::f1()”<f1();pa=&b1;pa->f1();}关于虚函数时,有以下几点说明:(1)虚函数用于不同的有继承关系的类中的相同原型的函数(同名,且参数类型、顺序及个数都相同),仅函数名相同则属于函数的重载;单独的一个虚函数没有实际意义。(2)虚函数的多态性必须
6、通过相同的指针来实现,通过对象名来调用虚函数不能体现虚函数多态性。一般来说,实现虚函数的多态性是通过基类的指针指向不同的对象来处理虚函数的。(3)虚函数是类的成员函数,但不能是静态成员函数,更不能是友元函数。友元函数不是类的成员。(4)如果派生类中没有重新定义虚函数,则不能体现虚函数的多态性。classA{public:virtualvoidf1(){cout<<“A::f1()”<7、voidf4(){cout<<“A::f4()”<f1();pa->f2();pa->f3(5);pa->f4();}ClassB:publicclassA{public:virtualvoidf1(){cout<<“B::f1()”<
7、voidf4(){cout<<“A::f4()”<f1();pa->f2();pa->f3(5);pa->f4();}ClassB:publicclassA{public:virtualvoidf1(){cout<<“B::f1()”<
此文档下载收益归作者所有