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

xiaoxiao2021-02-28  103

#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)();

}

 

转载请注明原文地址: https://www.6miu.com/read-77379.html

最新回复(0)