题目详情
单选题 现有货币类、电子支付类,如下:class Currency { //货币public: virtual ~Currency( ); void exchange( ); /* 其它略 */private: Country * mpCountry; };class EPay { //电子支付public: void pay( ); /* 其它略 */private: Bank * mpBank;};小王定义数字货币类(Decp)时,考虑到Decp必须具备货币的全部功能,又有电子支付的全部功能,即Decp既可以当做货币用,也可以当做一种电子支付使用.现采用了多重继承的方式复用已定义的类,如下:class Decp:public Currency, public EPay { /* 略 */};但是,小王希望Decp类有更好的适应性,特别是对于EPay类,虽然现在没有子类,但未来一定会派生其它子类.那么最合理的定义方式是哪种
A. class Decp:public Currency {public: void exchange( ); void pay( ) { mpEPay->pay( ); } /* 构造、析构、拷贝、赋值等略*/ private: EPay * mpEpay; }
B. class Decp:public EPay {public: void exchange( ){ mpCurency->exchange( ); } void pay( ); /* 构造、析构、拷贝、赋值等略*/ private: Currency * mpCurency; }
C. class IEPay {pubic: virtual ~IEPay( ) { } virtual void pay( ) = 0; };class EPay:public IEPay { /*略*/}; class Decp:public Currency , public IEPay {public: void exchange( ); void pay( ) { mpEPay->pay( ); } /* 构造、析构、拷贝、赋值等略*/ private: IEPay * mpEpay; }
D. class IEPay {pubic: virtual ~IEPay( ) { } virtual void pay( ) = 0; };class EPay:public IEPay { /*略*/}; class Decp:public Currency , public IEPay {public: void exchange( ); void pay( ); }

学科:面向对象程序设计
时间:2023-06-09 15:14:38
相关题目
相关作业
