c6语言程序设计(第四版.ppt

  1. 1、本文档共122页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 正确的程序 class Fred; //前向引用声明 class Barney { Fred *x; }; class Fred { Barney y; }; 指 针 * this指针 隐含于每一个类的成员函数中的特殊指针。 明确地指出了成员函数当前所操作的数据所属的对象。 当通过一个对象调用成员函数时,系统先将该对象的地址赋给this指针,然后调用成员函数,成员函数对对象的数据成员进行操作时,就隐含使用了this指针。 指 针 * this指针 例如:Point类的构造函数体中的语句: X=xx; Y=yy; 相当于: this-X=xx; this-Y=yy; 指 针 * 指向类的非静态成员的指针 通过指向成员的指针只能访问公有成员 声明指向成员的指针 声明指向公有数据成员的指针 类型说明符 类名::*指针名; 声明指向公有函数成员的指针 类型说明符 (类名::*指针名)(参数表); 指 针 * 指向类的非静态成员的指针 指向数据成员的指针 说明指针应该指向哪个成员 指针名=类名::数据成员名; 通过对象名(或对象指针)与成员指针结合来访问数据成员 对象名.* 类成员指针名 或: 对象指针名—*类成员指针名 指 针 * 指向类的非静态成员的指针 指向函数成员的指针 初始化 指针名=类名::函数成员名; 通过对象名(或对象指针)与成员指针结合来访问函数成员 (对象名.* 类成员指针名)(参数表) 或: (对象指针名—*类成员指针名)(参数表) 指 针 * 指向类的非静态成员的指针 例6-13 访问对象的公有成员函数的不同方式 int main() //主函数 { Point A(4,5); //声明对象A Point *p1=A; //声明对象指针并初始化 //声明成员函数指针并初始化 int (Point::*p_GetX)()=Point::GetX; //(1)使用成员函数指针访问成员函数 cout(A.*p_GetX)()endl; //(2)使用对象指针访问成员函数 cout(p1-GetX)()endl; //(3)使用对象名访问成员函数 coutA.GetX()endl; } 指 针 * 指向类的静态成员的指针 对类的静态成员的访问不依赖于对象 可以用普通的指针来指向和访问静态成员 例6-14 通过指针访问类的静态数据成员 例6-15 通过指针访问类的静态函数成员 指 针 * 例6-14通过指针访问类的静态数据成员 #include iostream using namespace std; class Point //Point类声明 {public: //外部接口 Point(int xx=0, int yy=0) {X=xx;Y=yy;countP++;}//构造函数 Point(Point p); //拷贝构造函数 int GetX() {return X;} int GetY() {return Y;} static int countP; //静态数据成员引用性说明 private: //私有数据成员 int X,Y; }; Point::Point(Point p) { X=p.X; Y=p.Y; countP++; } int Point::countP=0; //静态数据成员定义性说明 指 针 int main() //主函数 { //声明一个int型指针,指向类的静态成员 int *count=Point::countP; Point A(4,5); //声明对象A coutPoint A,A.GetX(),A.GetY(); //直接通过指针访问静态数据成员 cout Object id=*countendl; Point B(A); //声明对象B coutPoint B,B.GetX() ,B.GetY(); //直接通过指针访问静态数据成员 cout Object id=*countendl; } * * 例6-15通过指针访问类的静态函数成员 #include iostream using namespace std; class Point //Point类声明 { public: //外部接口 //其他函数略 static void GetC() //静态函数成员 { cout Object id=countPendl; } private: //私有数据成员 int X,Y;

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档