易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
C++类成员函数指针
使用类成员函数指针需要掌握的三点。
1) 申明类成员函数指针:::*
2) 通过对象指针调用类函数指针:->*
3) 通过对象调用类函数指针:.*例:
/** 定义基类和子类 **/
class
Base {
public
:
virtual
void
print1() {
std::cout <<
"Base::print1()"
<< std::endl;
}
virtual
void
print2() {
std::cout <<
"Base::print2()"
<< std::endl;
}
};
class
Derived :
public
Base {
public
:
virtual
void
print1() {
std::cout <<
"Derived::print1()"
<< std::endl;
}
virtual
void
print2() {
std::cout <<
"Derived::print2()"
<< std::endl;
}
};
/** 申明类成员函数指针类型 **/
typedef
void
(Base::*fn)();
/** 通过对象指针调用类函数指针 **/
void
test1(Base* obj, fn func) {
(obj->*func)();
}
/** 通过对象调用类函数指针 **/
void
test2(Base& obj, fn func) {
(obj.*func)();
}
void
test_function_pointer() {
Base b;
Derived d;
test1(&b, &Base::print1);
test1(&b, &Base::print2);
test1(&d, &Base::print1);
test1(&d, &Base::print2);
test2(b, &Base::print2);
test2(d, &Base::print2);
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图