《面向对象程序设计》第四章 类与对象的构造设计(4.8)指向类成员的指针

4.8指向类成员的指针 C++提供一种特殊的指针类型,它指向类的成员,而不是指向该类的一个对象中该成员 的一个实例,这种指针称为指向类成员的指针。 指向类X中类型为type数据成员的指针的说明形式为 type X::*pointer 若类X为数据成员 member的类型为tpe,则语句 pointer=&X:: member 将该成员的地址存入 pointer中。 注意:1、取一个类成员的地址使用表达式&X:: member得到的地址不是真实地址,而 是成员 member在类中的所有成员中的偏移。因此,若要访问某个对象中 pointer所指向 的成员,使用特殊的运算符“.*”和“->*”。 2、在使用指向类成员的指针访问对象的某个成员时,必须指定一个对象。如果 该对象由对象名或引用标识,则使用运算符“.*”;如果是使用指向对象的指针来标识,则 使用运算符 例如:EX45aCPP 下面的程序比较指向类成员的指针与一般的指针的区别: cl obj(10) int*p=&obj. val; 指向X类中参数类型列表为it,返回类型为type的成员函数的指针说明形式为: type(X "pointer (list): 如果类Ⅹ的成员函数 function的原型与 pointer所指向的函数的原型一样,则语句 pointer=X: function; 将该函数的地址(即它在该类的所有成员中的偏移)置给了指针 pointer。与指向数据 成员的指针类似,使用对象名或引用调用 pointer所指向的函数时使用运算符“.*”;如果 是使用指向对象的指针调用 pointer所指向的成员函数时使用运算符“->*”。 例如:EX45b.CPP 当一个指向类成员的指针指向一个虚函数时,并且通过指向对象的指针(或引用)访问 这个虚函数时,仍发生多态性。 例如:EX45c.CPP 指向类的静态成员的指针的定义和使用与一般指针的定义和使用方法一样。 例如:EX45.CPP
4.8 指向类成员的指针 C++提供一种特殊的指针类型,它指向类的成员,而不是指向该类的一个对象中该成员 的一个实例,这种指针称为指向类成员的指针。 指向类 X 中类型为 type 数据成员的指针的说明形式为: type X::*pointer; 若类 X 为数据成员 member 的类型为 type,则语句: pointer=&X::member; 将该成员的地址存入 pointer 中。 注意:1、取一个类成员的地址使用表达式&X::member 得到的地址不是真实地址,而 是成员 member 在类 X 中的所有成员中的偏移。因此,若要访问某个对象中 pointer 所指向 的成员,使用特殊的运算符“.*”和“->*”。 2、在使用指向类成员的指针访问对象的某个成员时,必须指定一个对象。如果 该对象由对象名或引用标识,则使用运算符“.*”;如果是使用指向对象的指针来标识,则 使用运算符“->*”。 例如:EX4_5a.CPP。 下面的程序比较指向类成员的指针与一般的指针的区别: cl obj(10); int *p=&obj.val; cout*”。 例如:EX4_5b.CPP 当一个指向类成员的指针指向一个虚函数时,并且通过指向对象的指针(或引用)访问 这个虚函数时,仍发生多态性。 例如:EX4_5c.CPP 指向类的静态成员的指针的定义和使用与一般指针的定义和使用方法一样。、 例如:EX4_5.CPP
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象程序设计》第四章 类与对象的构造设计(4.6)类与结构、联合的关系.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.5)类与对象的进一步用法.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.4)类中类用法.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.3)类构造的存储设计.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.2)构造函数和析构函数.doc
- 《面向对象程序设计》第四章 类与对象的构造设计(4.1)类的构造和创建.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.4)利用类库中虚函数进行多态程序设计.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.3)纯虚函数与同一协议的多版本.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.2)虚函数方法与多态机制.doc
- 《面向对象程序设计》第六章 多态性与虚函数(6.1)重载与程序的多态性设计.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.3)自定义的操纵算子.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.2)创建内核流.doc
- 《面向对象程序设计》第八章 C++系统流库的I/O操纵算子(8.1)创建文件流.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.5)赋值兼容规则.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.4)继承性应用实例分析.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.3)多重继承的设计.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.2)基类和派生类.doc
- 《面向对象程序设计》第五章 继承性和派生类(5.1)类层次、数据抽象和模块化.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.6)输入输出流简介.doc
- 《面向对象程序设计》第二章 C++基本知识速成(2.5)C++的语句及程序流程控制.doc
- 荆州职院:《平面广告设计》第二章 平面广告市场调查.ppt
- 荆州职院:《平面广告设计》第一章 序言.ppt
- 荆州职院:《平面广告设计》第四章 平面广告的创意及表现.ppt
- 荆州职院:《平面广告设计》第五章 平面广告设计的表现技法.ppt
- 荆州职院:《平面广告设计》第六章 平面广告的编排设计.ppt
- 荆州职院:《平面广告设计》第七章 平面广告分类设计法则.ppt
- 荆州职院:《平面广告设计》电子教案.doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(二).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(三).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(一).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(四).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(八).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(五).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(七).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(六).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题参考答案(一).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_试题B.doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(十).doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_试题A.doc
- 宜宾职业技术学院:《办公自动化》课程教学资源_考试试题(九).doc