C++“成员指针访问运算符”怎么用的呀?

C++“成员指针访问运算符”,即:.*运算符,是怎么用的呀?请高手回答,谢谢!
本人比较笨,请举个例子来说明。 还有,这个运算符是:一个点一个星号,不是单独的一个星号……

比如:
int *p, a=5;
p = &a;
cout<<*p<<endl;
结果为5,*p即为指针p所指向的变量的值。

例子:
class ClassName {public: int foo(int); }
int (ClassName::*pmf)(int) = &ClassNmae::foo;
ClassName c; //.*的用法,经由对象调用
(c.*pmf)(5);
ClassName *pc = &c; //->*的用法,经由对象指针调用
(Pc->*pmf)(6);
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-27
对不起,刚才看错了题。
”.“成员运算符是真对对象调用的
一般调用形式为 对象.函数或者 对象.变量
.*运算符 比如:a.*p 意思就是调用指针变量p所指向的内容 ,前提是指针变量p一定要 有指向。
第2个回答  推荐于2017-11-23
一个例子:

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

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

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

ClassName *pc = &c; //->*的用法,经由对象指针调用
(Pc->*pmf)(6);本回答被提问者采纳

c++中的 -> 、::、 .的作用,都分别用在什么地方
3:::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。.是用来访问类,结构等内部成员的运算符,是同->相同的使用方式 ...

C++ 中 如何 访问类成员函数的机制,有时候看见 Dog dog; dog.getName...
dog.getName()就是调用这个对象的getName成员 ->是指向成员操作符,左值通常是一个已有的该结构或类类型的指针。(->并不要求左值指针以分配内存,但基本上都是要分配的,为了内存读写。)如 Dog * p_dog = (Dog *)malloc (sizeof(Dog));p_dog -> getName()即Dog类型指针指向其getName成员...

c++中的:: -> >>分
其次,指向运算符 "->" 用于处理指针。当你有一个指针变量,通过"->"运算符,你可以访问该指针所指向的对象的成员,即使这些成员在指针的动态类型中。它允许你间接地操作内存地址中的数据。最后,">>>" 运算符是右移位运算符。它将左操作数的二进制表示向右移动指定的位数,同时在左端用0填充,以...

c++中 -> 是什么意思,如何使用
->是指针的指向运算符,通常与结构体一起使用。具体使用方法可以参考如下程序:include<stdio.h>struct stu \/\/ 定义一个结构体{ char name[10]; \/\/ 姓名 int num; \/\/ 学号 int age; \/\/ 年龄};void main(){ struct stu *s; \/\/ 定义一个结构体指针 char str[]...

C++中的this指针
1. 常规用法 常用场景包括自引用指针、链式调用、返回对象自身引用以及成员访问等。链式调用通过返回*this实现连续调用同一对象的多个成员函数。返回对象自身的引用特别适用于编写赋值运算符。成员函数内部通过this指针访问类成员,确保对象状态的正确管理。2. this指针的隐式转换 编译器处理this指针指向当前对象...

c++中的 -> 、::、 .的作用,都分别用在什么地方
->是指向运算符,其作用与成员运算符(.)是一样的,只不过在它左边的名字不是实例,而是指针。依然用类A。A *p = new A;p->foo(); \/\/调用类A的指针变量p指向的实例的成员函数foo p->number = 0; \/\/调用类A的指针变量p指向的实例的成员变量number赋值 delete p; \/\/释放指针 p...

c++里面,a -> b的意思是什么?是把a的地址指针赋给b吗?
在C++中->是成员指向运算符,a->b不表示把a的指针赋给b,在结构体中表示通过结构体变量指针a访问a所指向的结构体变量的b成员;在类中,表示通过对象指针a访问其指向的对象的b成员,结构体是类的特例。

C++中::和:, .和->的作用和区别?
在C++中,符号“::”和“:”以及“.”和“->”各自具有独特的功能。让我们一一解析。首先,"::"用于表示作用域解析运算符,用于访问类的成员。它用来指定在哪个命名空间或类中查找特定的成员,例如在继承、全局变量或函数中。例如,当需要访问一个基类的成员时,我们会使用"::",如`BaseClass::...

C++中的 |, |=,||=分别是什么意思?
->是成员选择符,下面是我帮你找的一点解释:成员选择符“.”与“->”的区别主要是操作符前面变量的类型。如果变量是指针型,则操作符为“->”,如果是非指针变量应该使用“.”。比如说一个类Time,我们分别定义一个此类的指针和对象。Time *ptime=new Time;Time time;如果我们想访问这个类中的一...

C++中指针的用法有那些?怎么定义?怎么初始化?
1) &:取地址运算符。2) *:指针运算符(或称“间接访问” 运算符) 。C语言中提供了地址运算符&来表示变量的地址。其一般形式为:&变量名;如&a 表示变量 a 的地址,&b 表示变量 b 的地址。变量本身必须预先说明。设有指向整型变量的指针变量p,如要把整型变量a 的地址赋予p可以有以下两种方式:(1) 指针...

相似回答