题目内容

class Customer {public:virtual ~Customer( ) { }void buy( Car& car,CutOff * pcutoff ) {float percent = (pcutoff==nullptr?1:pcutoff->percent( ));card.reduce( car.value( ) * percent );goHome( );}/* 其它略 */private:virtual void goHome( );private:CreditCard card;};分析上边给出的Customer类定义及部分实现,针对下面给出的需求变化,说出Customer类不适应哪些?1. 增加轿车(Car)类的新子类轿跑车(Coupe),并且给Coupe类添加独特的行为-比赛(race).2. 变更折扣类(CutOff)的折扣率以及折扣的计算方法3. 更改买车(buy)的购买流程4. 更改goHome的具体方式5. 增加信用卡的新种类以及重置信用卡的最长还款期

A. 134
B. 245
C. 23
D. 35

查看答案
更多问题

class A {public:virtual ~A( ) { }virtual void f( ) {//1...//2}void g( ) {//3...//4}....//5private:void h( ){//6...//7}private:intmx;//8....//9};对于下面给出的变化:1. 更改//1的原型为virtual void f( int );2. 修改//2中的既有代码3. 更改//3的原型为 void g( int );4. 修改//4中的既有代码5. 在//5处添加新成员函数 void k( ) const ;6. 更改//6的原型为 void h( int );7. 修改//7中的既有代码8. 更改//8中mx的类型为float9. 在//9处添加新的数据成员 int num;请问,共有几个属于实现变化而不是接口变化?

A. 4
B. 5
C. 6
D. 7

class Wepon {public:virtual ~Wepon( ) { }virtual int attack( ) const =0;};class Horse {public:virtual ~Horse( ) { }virtual int speed( ) const =0;};class Ultraman {public:void fight(Monster& m,Wepon & w, Horse& h) {int v1 = w.attack( );int v2 = h.speed( );/*其它略*/}};已知:会有多种类型的Wepon,各种Wepon攻击力的计算方法和数值都不一样;会有多种类型的Horse,各种Horse的速度的计算方法和数值都不一样;现希望重新定义Ultraman类,并仍能适应Wepon和Horse的变化,那么下面的定义,哪个是可以的?

A. class Ultraman {public:Ultraman(Horse & horse):mh(horse) { }void fight(Monster& m,Wepon & w) {int v1 = w.attack( );int v2 = mh.speed( );/*其它略*/}private:Horse mh;};
B. class Ultraman {public:Ultraman(Wepon& w):mw(&w) { }void fight(Monster& m,Horse & h) {int v1 = mw->attack( );int v2 = h.speed( );/*其它略*/}private:Wepon * mw;};
C. class Ultraman {public:void fight(Monster& m) {int v1 = mw.attack( );int v2 = mh.speed( );/*其它略*/}private:Horse mh;Wepon mw;};
D. class Ultraman:public Wepon {public:void fight(Monster& m,Horse & h) {int v1 = attack( );int v2 = h.speed( );/*其它略*/}};

现要开发一个模拟“飞行棋”的游戏。每个玩家"飞行"时,先通过掷骰子(Dice)决定前进几步,然后再移动。考虑到当前还处于游戏早期开发阶段,那么下面哪个Player类的设计和实现最合适?

A. class Player {public:virtual ~Player( ) { }virtual void play( Dice & aDice ) {int steps = aDice.cast( );...}};
B. class Player {public:virtual ~Player( ) { }virtual void play( ) {int steps = Dice::getInstance( ).cast( );...}};
C. class Player {public:virtual ~Player( ) { }virtual void play( ) {int steps = sDice.cast( );...}private:static Dice sDice;};
D. class Player {public:virtual ~Player( ) { }virtual void play( ) {int steps = DiceManager::getDice( ).cast( );...}};
E. class Player {public:virtual ~Player( ) { }virtual void play( ) {int steps = mDice.cast( );...}private:Dice mDice;};

类A中有数据成员 T * p[3];,那么下面关于T的类型的说法,有几个是正确的?1. T 可以是 A.2. T 可以是A的祖先类.3. T 可以是具体类,也可以是抽象类.4. T 可以是A的其它子类.5. T 可以是内置类型,也可以是自定义的类.6. T 可以是自定义类C,也可以是 C *.

A. 3
B. 4
C. 5
D. 6

答案查题题库