欢迎来到天天文库
浏览记录
ID:44398484
大小:276.50 KB
页数:27页
时间:2019-10-21
《复习串讲(chp5)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章特殊函数和成员主要内容:对象成员静态成员友元函数const对象一、对象成员的初始化类A的对象做类B的数据成员,定义类B的对象时,先调用构造函数,再调用构造函数可以在一个类中说明具有某个类的类型的数据成员,这些成员称为。对象成员对象成员的构造函数的调用顺序取决于这些对象成员的顺序,与它们在成员初始化列表中给出的顺序无关。在类中说明A类B类二、如果类的数据成员或成员函数使用关键字进行修饰,这样的成员称为静态数据成员或静态成员函数,统称为静态成员。(程序分析题)static简单成员函数是指声明中不含有、、关键字的函数。(2010.1035)constvolatilestatic1)
2、静态数据成员必须在类体外按照一定的格式初始化。类型类名::成员名=表达式;静态成员函数没有指针,所以静态成员函数不能直接访问成员,必须通过使用非静态成员。静态成员是的成员,不是成员,没有建立对象前,成员就已经存在.可以直接通过形式使用静态成员,类对象静态非静态虚类名::成员名公有对象(或者指向对象的指针)静态成员函数不能说明为函数this注意课本108页7条说明2)使用关键字static声明的类的对象称为对象。静态静态对象的构造函数时被调用,直到整个程序结束之前调用次。静态对象的析构函数时被调用,调用次。第一次遇到它的对象定义1整个程序退出1练习:请给出下面程序的输出结果(2010
3、.1)51.#includeclassClass{public:staticintvar;Class(){var++;}};intClass::var=0;voidmain(){cout<<"Class::var="<classA{public:A();voidShow();
4、~A();private:staticintc;};intA::c=0;A::A(){cout<<"constructor."<5、友元函数。friend友元函数在类体内声明,但该类的成员函数。有this指针,所以必须通过、、来访问类的成员。不是没对象对象的指针对象的引用2、A类的成员函数作B类的友元假定f()是类A中的成员函数可以在类B中声明将类A的成员函数f()声明为类B的友元声明函数f时需限定该函数f是类A的成员函数classA{……voidf(B&);……};classB{……;……};如何将类A的f函数声明为类B的友元函数?friendvoidA::f(B&)3、将一个类A说明为另一类B的友元friendclassA如果类A为类B的友元,则类A中的所有成员函数均具有友元函数的功能。友元的特点:1)友元6、声明与访问控制无关。2)友元关系是传递。3)友元关系是的。不能单向四、常对象(改错题)在对象名前使用关键词可以将一个对象声明为常对象。常对象在声明的同时必须进行。const初始化声明格式:类名const对象名(参数表)一个const对象只能访问成员,否则将产生编译错误。const1、常量成员常量成员包括:、和。常量数据成员静态常数据成员常引用静态常数据成员仍然保留静态成员特征,需要在初始化,而常数据成员和常引用则只能通过来获得初值。类外初始化列表2、常成员函数在定义成员函数时,函数体之前加上可以防止函数改变数据成员的值。const练习:.声明一个常成员函数Fun,其返回类型为cha7、r,第一个参数类型为int,第二个参数类型为double,函数Fun的声明原型是。(2010.133)charFun(int,double)const;五、指向类成员函数的指针1、会定义函数指针并给其赋值2、使用函数指针调用函数练习(2008.10)30.设类A有成员函数voidFun(void);若:要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:。void(A::*pafn)(void)=A::fun;53.给出下面程序的输出结果(
5、友元函数。friend友元函数在类体内声明,但该类的成员函数。有this指针,所以必须通过、、来访问类的成员。不是没对象对象的指针对象的引用2、A类的成员函数作B类的友元假定f()是类A中的成员函数可以在类B中声明将类A的成员函数f()声明为类B的友元声明函数f时需限定该函数f是类A的成员函数classA{……voidf(B&);……};classB{……;……};如何将类A的f函数声明为类B的友元函数?friendvoidA::f(B&)3、将一个类A说明为另一类B的友元friendclassA如果类A为类B的友元,则类A中的所有成员函数均具有友元函数的功能。友元的特点:1)友元
6、声明与访问控制无关。2)友元关系是传递。3)友元关系是的。不能单向四、常对象(改错题)在对象名前使用关键词可以将一个对象声明为常对象。常对象在声明的同时必须进行。const初始化声明格式:类名const对象名(参数表)一个const对象只能访问成员,否则将产生编译错误。const1、常量成员常量成员包括:、和。常量数据成员静态常数据成员常引用静态常数据成员仍然保留静态成员特征,需要在初始化,而常数据成员和常引用则只能通过来获得初值。类外初始化列表2、常成员函数在定义成员函数时,函数体之前加上可以防止函数改变数据成员的值。const练习:.声明一个常成员函数Fun,其返回类型为cha
7、r,第一个参数类型为int,第二个参数类型为double,函数Fun的声明原型是。(2010.133)charFun(int,double)const;五、指向类成员函数的指针1、会定义函数指针并给其赋值2、使用函数指针调用函数练习(2008.10)30.设类A有成员函数voidFun(void);若:要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:。void(A::*pafn)(void)=A::fun;53.给出下面程序的输出结果(
此文档下载收益归作者所有