欢迎来到天天文库
浏览记录
ID:58891075
大小:593.50 KB
页数:41页
时间:2020-09-30
《C++技能培训四ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主讲人:曹宣俊C++面向对象程序设计2021/7/28目录静态成员类成员指针this指针子对象堆对象常对象函数模板类模板2021/7/28类静态成员静态成员分为:静态数据成员和静态成员函数静态数据成员静态数据成员是类的所有对象共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所共有的,只需存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样的,但是它的值是可以更新的。2021/7/28静态数据成员定义方法1,在一般数据成员前加关键字static2,静态数据成员初始化与一般数据成员初始化不同。其初始化如下:数据类型
2、类名::静态数据成员名=值;这说明:初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。初始化时不加该成员的访问权限控制符private,public等初始化时使用作用域来表明它所属的类静态成员必须进行初始化。引用静态数据成员时,既可以通过对象引用,也可以采用如下格式:类名::静态数据成员名2021/7/28示例程序classA{staticinta;};voidmain(){cout<3、果是1,后者是4.从而可见静态数据成员节省内存空间2021/7/28静态成员函数静态成员函数是类的静态成员,而不是对象成员。定义方式是在普通成员函数前加static调用静态成员函数时既可以通过对象来调用,也可以通过类来调用。在静态成员函数的实现中,不能直接引用类中说明的非静态成员,但是可以引用类中说明的静态数据成员。如果静态成员函数中要引用非静态成员时,则可通过对象来调用。2021/7/28示例程序classSampl{private:intn;staticintm;public:Sample(inti){n=i;m+=i;}Staticvoiddi4、sp(Samplec){cout<<“n=”<5、先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/28示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/28示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、7/28this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/28示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddvalue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
3、果是1,后者是4.从而可见静态数据成员节省内存空间2021/7/28静态成员函数静态成员函数是类的静态成员,而不是对象成员。定义方式是在普通成员函数前加static调用静态成员函数时既可以通过对象来调用,也可以通过类来调用。在静态成员函数的实现中,不能直接引用类中说明的非静态成员,但是可以引用类中说明的静态数据成员。如果静态成员函数中要引用非静态成员时,则可通过对象来调用。2021/7/28示例程序classSampl{private:intn;staticintm;public:Sample(inti){n=i;m+=i;}Staticvoiddi
4、sp(Samplec){cout<<“n=”<5、先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/28示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/28示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、7/28this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/28示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddvalue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
5、先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。2021/7/28示例程序(类数据成员指针)classSample{public:voiddisp(){cout<<“m=”<6、成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/28示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、7/28this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/28示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddvalue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
6、成员函数的指针名=函数名程序中使用指向函数的指针调用函数的格式如下:(*指向函数的指针名)(实参表)2021/7/28示例程序classSampl{private:intn,m;public:voidsetm(inti){n=i;}voidsetn(inti){n=i;}voiddisp(){cout<<“n=”<7、7/28this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/28示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddvalue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
7、7/28this指针在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为:对象.成员函数在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型2021/7/28示例程序classSampl{private:intn;public:Sample(intm){n=m;}voidaddvalue(intm){Samples;s.n=n+m;*this=s;}voiddisp(){cout<<“n=”<8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
8、();s.addvalue(5);s.disp();}2021/7/28示例程序进行说明本程序执行的结果是n
此文档下载收益归作者所有