欢迎来到天天文库
浏览记录
ID:43337901
大小:1.00 MB
页数:41页
时间:2019-10-08
《C++面向对象程序设计--技能培训四》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、主讲人:曹宣俊C++面向对象程序设计2021/7/18目录静态成员类成员指针this指针子对象堆对象常对象函数模板类模板2021/7/18类静态成员静态成员分为:静态数据成员和静态成员函数静态数据成员静态数据成员是类的所有对象共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所共有的,只需存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样的,但是它的值是可以更新的。2021/7/18静态数据成员定义方法1,在一般数据成员前加关键字static2,静态数据成员初始化与一般数据成员初始化
2、不同。其初始化如下:数据类型类名::静态数据成员名=值;这说明:初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。初始化时不加该成员的访问权限控制符private,public等初始化时使用作用域来表明它所属的类静态成员必须进行初始化。引用静态数据成员时,既可以通过对象引用,也可以采用如下格式:类名::静态数据成员名2021/7/18示例程序classA{staticinta;};voidmain(){cout<3、cout<4、public:Sample(inti){n=i;m+=i;}Staticvoiddisp(Samplec){cout<<“n=”<5、员指针一般定义格式如下:类型类名::数据成员指针名由于类不是运行时存在的对象,因此,使用类数据成员指针时,需要首先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/18示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、21/7/18类成员函数指针指向类成员函数的指针定义格式如下:类型(类名::*成员函数指针名)(参数表)给类成员函数指针赋值的格式如下:指向成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/18示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
3、cout<4、public:Sample(inti){n=i;m+=i;}Staticvoiddisp(Samplec){cout<<“n=”<5、员指针一般定义格式如下:类型类名::数据成员指针名由于类不是运行时存在的对象,因此,使用类数据成员指针时,需要首先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/18示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、21/7/18类成员函数指针指向类成员函数的指针定义格式如下:类型(类名::*成员函数指针名)(参数表)给类成员函数指针赋值的格式如下:指向成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/18示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
4、public:Sample(inti){n=i;m+=i;}Staticvoiddisp(Samplec){cout<<“n=”<5、员指针一般定义格式如下:类型类名::数据成员指针名由于类不是运行时存在的对象,因此,使用类数据成员指针时,需要首先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/18示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、21/7/18类成员函数指针指向类成员函数的指针定义格式如下:类型(类名::*成员函数指针名)(参数表)给类成员函数指针赋值的格式如下:指向成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/18示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
5、员指针一般定义格式如下:类型类名::数据成员指针名由于类不是运行时存在的对象,因此,使用类数据成员指针时,需要首先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/18示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、21/7/18类成员函数指针指向类成员函数的指针定义格式如下:类型(类名::*成员函数指针名)(参数表)给类成员函数指针赋值的格式如下:指向成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/18示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
6、21/7/18类成员函数指针指向类成员函数的指针定义格式如下:类型(类名::*成员函数指针名)(参数表)给类成员函数指针赋值的格式如下:指向成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/18示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
7、d(Sample::*pfub)(int);Samplea;pfun=Sample::setm;(a.*pfun)(10);//等价于a.setm(10);}2021/7/18this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/18示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddva
8、lue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<
此文档下载收益归作者所有