【c++教程】3.8-成员指针运算符

本文详细介绍了C++中的成员指针,包括指向对象成员的指针和指向指针的成员的指针。成员指针不指向成员本身,而是指向成员的类型。`a.*b`不可重载,而`a->*b`可以重载。成员指针的使用中,`a->*b`等价于`(*a).*b`。
摘要由CSDN通过智能技术生成

成员指针

指向对象的成员的指针(pointer to member of object) a.*b

指向指针的成员的指针(pointer to member of pointer) a->*b

1,pointer to member of object,首先我们要知道,member of object指的是a.b。所以,这个pointer to member of object指的是,指向a.b的指针。

2,中文名字一般翻译的是,指向对象的成员的指针。这里面很奇怪的是,对象的成员是什么,是成员对象吗?对象的成员和成员对象有什么区别吗?一般来说,说对象的成员而不是成员对象,是因为这里指针指向的是一种成员的类型,而不是成员本身。

3,a.*b是不可以重载的,a->*b是可以重载的。

成员指针的使用

说起指向a.b的指针,那么,我们很容易想到&a.b,例如

#include <iostream>

using namespace std;

struct Student
{
    int age;
};

int main()
{
    Student s = {18};

    int * p = &s.age;

    cout << s.age << endl;
    cout << *p << endl;
}

这是我们需要的吗?通过*p,就可以取得保存的a.b的值了,显然不是我们需要的成员指针。那么成员指针是什么呢?


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值