欢迎来到天天文库
浏览记录
ID:49264046
大小:96.00 KB
页数:24页
时间:2020-02-02
《成员函数的特性.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、成员函数的特性内联函数重载性设置参数的缺省值内联函数内联函数:函数的函数体放在类体内外联函数:说明在类体内,定义在类体外。外联函数在函数头前加上inline就变成内联函数了。重载性成员函数可以重载。构造函数可以重载,析构函数不能重载。构造函数和析构函数的调用时间对象类型构造函数调用析构函数调用全局对象程序运行程序结束局部对象对象定义处离开程序块静态局部对象对象定义处程序结束New动态创建的对象创建对象处Delete显式撤消6.5静态成员静态成员的提出是为了解决数据共享的问题。同全局对象相比使用静态数据成员有两个优势:1静态数据成员没
2、有进入程序的全局名字空间,因此不存在与程序中其他全局名字冲突的可能性2可以实现信息隐藏。静态成员可以是private成员,而全局对象不能。#includeclassMyclass{public:Myclass(inta,intb,intc);voidGetNumber();voidGetSum();private:intA,B,C;staticintSum;//静态成员};intMyclass::Sum=0;//静态成员初始化,必须初始化Myclass::Myclass(inta,intb,intc){A=a
3、;B=b;C=c;Sum+=A+B+C;}Exa6-7voidMyclass::GetNumber(){cout<<"Number="<4、字static就使该数据成员成为静态的。2.静态数据成员初始化的格式:<数据类型><类名>::<静态数据成员名>=<值>一般地,静态数据成员在该类定义之外被初始化,并且不加static,以免与一般静态变量混淆。3.必须对静态成员初始化4.引用静态数据成员时,采用如下格式:<类名>::<静态成员名>静态成员函数对静态成员函数的引用不需要用对象名。在静态成员函数的实现中,不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数内要引用非静态成员,可以通过对象来引用。#includeclass5、M{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);private:intA;staticintB;};voidM::f1(Mm){cout<<"A="<6、公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元通俗的理解就是允许另一个类或函数访问你的类的一种机制。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类.友元函数是一种定义在类外部的普通函数,其说明在类内部,关7、键字:friend.友元函数不是成员函数,但是可以访问类中的私有成员。友元函数的特点是能够访问类中私有成员的非成员函数。从语法上看,和普通函数一样。例6-10该程序的Point类中说明了一个友元函数Distance(),它在说明时前面加一个friend关键字,标识它不是成员函数,而是友元函数。它不需要指出所属的类,但是可以引用类中的私有成员,如a.x,b.x,a.y,b.y,都是类的私有成员。P1.Getxy(),p2.Getxy()是成员函数的调用。在调用友元函数时,如Distance(p1,p2)是友元函数的调用,不需要对象表示8、。友元类友元还可以是类,即一个类可以作为另一个类的友元。当一个类作为另一个类的友元时,该类的所有成员函数都是另一个类的友元函数。整个类作为另一个类的友元:classx{friendclassy;//……};例6-116.7类的作用域类
4、字static就使该数据成员成为静态的。2.静态数据成员初始化的格式:<数据类型><类名>::<静态数据成员名>=<值>一般地,静态数据成员在该类定义之外被初始化,并且不加static,以免与一般静态变量混淆。3.必须对静态成员初始化4.引用静态数据成员时,采用如下格式:<类名>::<静态成员名>静态成员函数对静态成员函数的引用不需要用对象名。在静态成员函数的实现中,不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数内要引用非静态成员,可以通过对象来引用。#includeclass
5、M{public:M(inta){A=a;B+=a;}staticvoidf1(Mm);private:intA;staticintB;};voidM::f1(Mm){cout<<"A="<6、公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元通俗的理解就是允许另一个类或函数访问你的类的一种机制。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类.友元函数是一种定义在类外部的普通函数,其说明在类内部,关7、键字:friend.友元函数不是成员函数,但是可以访问类中的私有成员。友元函数的特点是能够访问类中私有成员的非成员函数。从语法上看,和普通函数一样。例6-10该程序的Point类中说明了一个友元函数Distance(),它在说明时前面加一个friend关键字,标识它不是成员函数,而是友元函数。它不需要指出所属的类,但是可以引用类中的私有成员,如a.x,b.x,a.y,b.y,都是类的私有成员。P1.Getxy(),p2.Getxy()是成员函数的调用。在调用友元函数时,如Distance(p1,p2)是友元函数的调用,不需要对象表示8、。友元类友元还可以是类,即一个类可以作为另一个类的友元。当一个类作为另一个类的友元时,该类的所有成员函数都是另一个类的友元函数。整个类作为另一个类的友元:classx{friendclassy;//……};例6-116.7类的作用域类
6、公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元通俗的理解就是允许另一个类或函数访问你的类的一种机制。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类.友元函数是一种定义在类外部的普通函数,其说明在类内部,关
7、键字:friend.友元函数不是成员函数,但是可以访问类中的私有成员。友元函数的特点是能够访问类中私有成员的非成员函数。从语法上看,和普通函数一样。例6-10该程序的Point类中说明了一个友元函数Distance(),它在说明时前面加一个friend关键字,标识它不是成员函数,而是友元函数。它不需要指出所属的类,但是可以引用类中的私有成员,如a.x,b.x,a.y,b.y,都是类的私有成员。P1.Getxy(),p2.Getxy()是成员函数的调用。在调用友元函数时,如Distance(p1,p2)是友元函数的调用,不需要对象表示
8、。友元类友元还可以是类,即一个类可以作为另一个类的友元。当一个类作为另一个类的友元时,该类的所有成员函数都是另一个类的友元函数。整个类作为另一个类的友元:classx{friendclassy;//……};例6-116.7类的作用域类
此文档下载收益归作者所有