C++进阶 -类中成员和成员函数的动态调用

#include <iostream>
using namespace std;
class Transport
{
public:
Transport(double s,double w)
{
Speed=s;
Weight=w;
}
virtual ~Transport()
{
cout<<"in ~Transport!"<<endl;
}
void Move()
{
cout<<"in moving"<<"\nSpeed="<<Speed<<"\nWeight="<<Weight<<endl;
}
void setSpeed(double s)
{
Speed=s;
}
void setWeight(double w)
{
Weight=w;
}


double Speed;
double Weight;
};
typedef double Transport::*pdouble;//数字成员指针
typedef void (Transport::*pSub)(double);//带参成员函数指针
typedef void (Transport::*pMove)();//无参成员函数指针
void main()
{
Transport t(8.8,9.9);


//数字成员指针指向Speed;
pdouble pd=&Transport::Speed;
printf("pd=%d\n",pd);
cout<<"Speed="<<t.*pd<<endl;


//数字成员指针指向Weight;
pd=&Transport::Weight;
printf("pd=%d\n",pd);
cout<<"Weight="<<t.*pd<<endl;


Transport *pt=&t;


cout<<"调用带参成员函数指针指向setSpeed(double)"<<endl;;
pSub ps=&Transport::setSpeed;
(pt->*ps)(88.88);



cout<<"调用带参成员函数指针指向setWeight(double)"<<endl;;
pSub pw=&Transport::setWeight;
(pt->*pw)(99.99);



cout<<"调用无参成员函数指针指向Move()"<<endl;;
pMove pm=&Transport::Move;

(pt->*pm)();

}


 

 

  企业网站/微信小程序/app定制开发请添加微信:Hawkonline

 最新小程序案例

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值