欢迎来到天天文库
浏览记录
ID:48199926
大小:550.00 KB
页数:31页
时间:2020-01-15
《三、类和对象(二)_面向对象程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程要求课程内容课程内容课程要求参考书目返回首页面向对象程序设计类和对象友元静态成员对象成员常成员this指针综合范例面向对象程序设计This指针*指向当前对象实例的特殊指针成员函数通过this指针,找到自己所属的对象实例隐含定义形式2-16main&result<类名>*constthis;面向对象程序设计this指针2-16classeg{inti;public:voidload(intval){i=val;}intget(){returni;}};voidmain(){egobj;obj.load(100);cout<2、et();}this的隐式调用voidload(eg*this,intval){this->i=val;}intget(eg*this){returnthis->i;}load(&obj,100);get(&obj);面向对象程序设计this指针2-16classstudent{public:……voidcopy(student&s){if(this==&s){cout<<"cannotcopyitself!";cout<3、d;char*name;};this的显式调用a.copy(a);b.copy(a);面向对象程序设计this指针2-16classCTest{public:CTest(){x=20;}//Avoiduse_this();//Bprivate:intx;};voidCTest::use_this(){CTesty,*pointer;//Cthis=&y;//D*this.x=10;//Epointer=this;//Fpointer=&y;}//G改正错误voidmain(){CTesty;//Hthis->x=235;//I}this4、=&y;*this.x=10;this->x=235;面向对象程序设计this指针*小结2-161、是一个const指针,不能修改它的值2、可以被显示调用,但只能在类成员函数中出现3、*this表示操作成员函数的对象back面向对象程序设计静态成员*静态数据成员:例3.28定义:2-16static类型名变量名1、静态数据成员的定义或说明时前面加关键字static2、必须对静态数据成员初始化3、引用数据成员时,如果静态数据成员访问权限允许,采用以下格式调用:类名::静态成员名面向对象程序设计静态成员静态数据成员初始化格式:2-161、5、初始化在类体外进行,前面不加static2、初始化时不加该成员的访问权限控制符3、初始化时使用作用域运算符来标明它的所属类类型类名::静态数据成员=值能否使用构造函数为静态数据成员赋值面向对象程序设计静态成员2-16classCCounter{public:staticintcount;//共有数据成员CCounter(){count++;}};intCCounter::count=0;voidmain(){cout<<"当前类对象的数目为:";cout<6、cout<<"当前类对象的数目为:";cout<7、:CStudent(){totalstu++;name=newchar[10];No=totalstu;cin>>name;}voidCStudent::outputinfo(){cout<8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
2、et();}this的隐式调用voidload(eg*this,intval){this->i=val;}intget(eg*this){returnthis->i;}load(&obj,100);get(&obj);面向对象程序设计this指针2-16classstudent{public:……voidcopy(student&s){if(this==&s){cout<<"cannotcopyitself!";cout<3、d;char*name;};this的显式调用a.copy(a);b.copy(a);面向对象程序设计this指针2-16classCTest{public:CTest(){x=20;}//Avoiduse_this();//Bprivate:intx;};voidCTest::use_this(){CTesty,*pointer;//Cthis=&y;//D*this.x=10;//Epointer=this;//Fpointer=&y;}//G改正错误voidmain(){CTesty;//Hthis->x=235;//I}this4、=&y;*this.x=10;this->x=235;面向对象程序设计this指针*小结2-161、是一个const指针,不能修改它的值2、可以被显示调用,但只能在类成员函数中出现3、*this表示操作成员函数的对象back面向对象程序设计静态成员*静态数据成员:例3.28定义:2-16static类型名变量名1、静态数据成员的定义或说明时前面加关键字static2、必须对静态数据成员初始化3、引用数据成员时,如果静态数据成员访问权限允许,采用以下格式调用:类名::静态成员名面向对象程序设计静态成员静态数据成员初始化格式:2-161、5、初始化在类体外进行,前面不加static2、初始化时不加该成员的访问权限控制符3、初始化时使用作用域运算符来标明它的所属类类型类名::静态数据成员=值能否使用构造函数为静态数据成员赋值面向对象程序设计静态成员2-16classCCounter{public:staticintcount;//共有数据成员CCounter(){count++;}};intCCounter::count=0;voidmain(){cout<<"当前类对象的数目为:";cout<6、cout<<"当前类对象的数目为:";cout<7、:CStudent(){totalstu++;name=newchar[10];No=totalstu;cin>>name;}voidCStudent::outputinfo(){cout<8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
3、d;char*name;};this的显式调用a.copy(a);b.copy(a);面向对象程序设计this指针2-16classCTest{public:CTest(){x=20;}//Avoiduse_this();//Bprivate:intx;};voidCTest::use_this(){CTesty,*pointer;//Cthis=&y;//D*this.x=10;//Epointer=this;//Fpointer=&y;}//G改正错误voidmain(){CTesty;//Hthis->x=235;//I}this
4、=&y;*this.x=10;this->x=235;面向对象程序设计this指针*小结2-161、是一个const指针,不能修改它的值2、可以被显示调用,但只能在类成员函数中出现3、*this表示操作成员函数的对象back面向对象程序设计静态成员*静态数据成员:例3.28定义:2-16static类型名变量名1、静态数据成员的定义或说明时前面加关键字static2、必须对静态数据成员初始化3、引用数据成员时,如果静态数据成员访问权限允许,采用以下格式调用:类名::静态成员名面向对象程序设计静态成员静态数据成员初始化格式:2-161、
5、初始化在类体外进行,前面不加static2、初始化时不加该成员的访问权限控制符3、初始化时使用作用域运算符来标明它的所属类类型类名::静态数据成员=值能否使用构造函数为静态数据成员赋值面向对象程序设计静态成员2-16classCCounter{public:staticintcount;//共有数据成员CCounter(){count++;}};intCCounter::count=0;voidmain(){cout<<"当前类对象的数目为:";cout<6、cout<<"当前类对象的数目为:";cout<7、:CStudent(){totalstu++;name=newchar[10];No=totalstu;cin>>name;}voidCStudent::outputinfo(){cout<8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
6、cout<<"当前类对象的数目为:";cout<7、:CStudent(){totalstu++;name=newchar[10];No=totalstu;cin>>name;}voidCStudent::outputinfo(){cout<8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
7、:CStudent(){totalstu++;name=newchar[10];No=totalstu;cin>>name;}voidCStudent::outputinfo(){cout<8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
8、必须借助对象3、编译器对静态成员函数的处理是内部的,在多文件联编中,不会与其他同名函数冲突4、可以在建立任何对象之前处理静态数据成员面向对象程序设计静态成员2-16classM{public:M(inta)
此文档下载收益归作者所有