关闭

指向成员函数的指针

标签: 函数指针
140人阅读 评论(0) 收藏 举报
分类:
#include<iostream>
using namespace std;
class Base{
	public:
		virtual void say(){
			cout<<"Base"<<endl;
		}
		void doit(){
			cout<<"Base"<<endl;
		} 
};
class Derive:public Base{
	public:
		void say(){
			cout<<"Derive"<<endl;
		}
		void doit(){
			cout<<"Derive"<<endl;
		}
};
int main(){
	typedef void(Base::*bfunc)();
	typedef void(Derive::*dfunc)();
	bfunc func1=&Base::say;
	dfunc func2=&Derive::say;
	Base base;
	Derive derive;
	
	(base.*func1)();
	(derive.*func1)();
	//(base.*func2)();//错误 
	(derive.*func2)();
	cout<<"------------------------------------"<<endl;
	bfunc func3=&Base::doit;
	dfunc func4=&Derive::doit;
	
	Base base2;
	Derive derive2;
	
	(base2.*func3)();
	(derive2.*func3)();
	//(base2.*func4)();//错误 
	(derive2.*func4)();
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:111316次
    • 积分:4380
    • 等级:
    • 排名:第7140名
    • 原创:266篇
    • 转载:466篇
    • 译文:0篇
    • 评论:3条
    文章分类