// 定义变态指针.cpp : 你知道什么叫变态吗?
// Code By 变态狂!#include "stdafx.h"
#include <iostream>
using namespace std;class B{
public:
int *a;
int foo(int i){
cout<<"B foo "<<i<<endl;
return i;
}
}b;class A{
public:
int **c;
B *b;
}z;
int main(int argc, char* argv[])
{ // 定义变态指针
class B * A::* p; // 给变态指针赋值
p = &A::b ;
// 重新给变态指针赋值
z.*p = new B();
printf("&A::c = %p/n",p); // 建立一个B对象
B* bp = new B(); // 定义变态函数指针
int (B::*func)(int a);
func = B::foo; // 来,用一把~
cout<<"(z.*p->*func)(2)="<<(z.*p->*func)(2)<<endl;
cout<<"(bp->*func)(4)="<<(z.*p->*func)(2)<<endl; // Byebye //:~
return 0;
}
&A::c = 00000004
B foo 2
(z.*p->*func)(2)=2
B foo 2
(bp->*func)(4)=2
变态指针.cpp
原创
©著作权归作者所有:来自51CTO博客作者晓楚的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux编译socket.io-client-cpp
Linux socket.io build.
socket.io Linux Build socket.io-client.cpp c++ -
接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
接了个变态需求:生成 Excel + PDF 导出,用 Java 怎么实现?
List 表单 实体类 pdf springboot -
C语言指针的基本认识
C语言指针的基本认识
指针变量 指针类型 指针数组 -
变态的YUM
yum 的 mirrorlist以及$releasever
职场 休闲 yum mirrorlist $rele -
-_-#变态无下限
无标题文档
html css xml 3c