c++:成员指针运算符 .* 和 ->*

阅读数:256 评论数:0

跳转到新版页面

分类

C/C++

正文

有一种特殊的指针叫做成员指针,它们通常指向一个类的成员,而不是对象中成员的特定实例。

成员指针并不是真正的指针,它只是成员在对象中的偏移量,它们分别是:.* 和 ->* 。

一个例子:

class ClassName {public: int foo(int); }

int (ClassName::*pmf)(int) = &ClassNmae::foo;

ClassName c; //.*的用法,经由对象调用
(c.*pmf)(5);

ClassName *pc = &c; //->*的用法,经由对象指针调用
(Pc->*pmf)(6);

->*只是把c变为对象指针




相关推荐

第1章 认识对象 1.面向对象分析(object-oriented analysis,OOA)的主要任务是分析问题域中的对象、对象之间的关系,然后构造出该问题域的分析模型。分析

第一章 C++初步认识 C++对C的&ldquo;增强&rdquo;,表现在两个方面: (1)在原来面向过程的机制基础上,对C语言的功能做了不少扩展 <p

C++标准每5年会有一个新版本,1998年的C++98、2003年的C++03、2007年的C++TR1、2011年的C++11. 转换操作符 static_ca

组织和策略问题第0条 不要拘泥于小节(了解哪此东本西不应该标准化) 编程规范不应施加个人喜好或者过时的做法。第1条 在高警告级别干净利落地进行编译

它的规则就是当编译器对无限定域的函数调用进行名字查找时,除了当前名字空间域以外,也会把<span style="colo

1、C++版本更迭 <t

1、转换操作 (1)static_cast 将一个值以符合逻辑的方式转型。这个可以看作是&ldquo;利用原值重建一个临时对象,并在设立初值时使用型别转换&rdq

一、概述 GCC一般包括预处理、编译、组装和链接。GCC的运行一般是调用命令gcc,在cross-compiling时使用machine-gcc或machine-gcc-version,在使用c++时

一、概念 所谓的预编译头文件就是把工程中不会经常改变的代码预先编译好放在一个文件里(通过是以.pch为扩展名Precompiled heade

一、string转char* 1、c_str()方法 string str="world"; const char* p = str.c_str();// 加const或等号右边用char* 2、da