c++中成员指针运算符
今天听c++的课,看到成员指针运算符 .*似乎没有见过,有没有哪位大神可以告诉我怎么用{:10_319:} https://blog.csdn.net/imxiangzi/article/details/50248077
这个刚才我也是百度了一下,发现这个就是一个取值和取址的应用,上面这个csdn的博客可以参考一下,感觉挺容易理解的,我认为还是要理解指针常量,指针变量还有取址&和取值*运算符的使用和意义
此外还可以参考一下这个网址上的https://blog.csdn.net/chs007chs/article/details/31787435
另外上面的小程序可以自己手动打一下,加深印象,小弟愚见,有错还望大神指正 #include "stdafx.h"
#include <iostream>
using namespace std;
class CA
{
public:
CA(int i = 0) :m_num(i) {};
void Print(void)const { cout << m_num << endl; }
int m_num;
};
using Fp = void(CA::*)(void)const; //创建一个函数指针的指针成员运算符
using NP = int CA::*; //创建一个int类型的指针成员运算符
int main()
{
Fp p;
CA a;
CA b(100);
p = &CA::Print; //绑定函数指针的指针成员变量
NP p1 = &CA::m_num; //绑定int类型的指针成员变量
(a.*p)();
(b.*p)();
// 我们发现用CA类的对象调用p都是调用Print函数
cout << a.*p1 << endl;
cout << b.*p1 << endl;
// 我们发现用CA类的对象解引用p1都是m_num;
//以上结论可以看出指针成员运算符是指向类的函数或成员变量,当我们用CA类的任何一个对象来调用时,都会调用本类已绑定的函数或成员变量
system("pause");
return 0;
}
今晚更新,今天开始学习指针 后期会有进阶笔记上传 欢迎关注
页:
[1]