案例分析题

试题六
阅读下列说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

【说明】
以下 C++代码实现一个简单客户关系管理系统(CrM)中通过工 厂(Customerfactory)对象来创建客户(Customer)对象的功能。 客户分为创建成功的客户(realCustomer)和空客户(NullCustomer)。 空客户对象是当不满足特定条件时创建或获取的对象。类间关系如图6-1 所示。

【正确答案】

(1):virtual
(2):virtual
(3):public Customer
(4):public Customer
(5):compare(name)==0
(6):new Null Customer()
(7):cf=New CustomerFactory();

【答案解析】

本题考察使用 C++代码实现实际问题。
在 C++中, 动态绑定是通过虚函数来实现的。 此题中用到了虚函数, 所以要在成员函数原型缺钱加一个关键字 virtual。
类RealCustomer和类NullCustomer是类Customer的派生类, 因此3、4空都填public Customer。
进行对比数据库中的人名 compare(name)==0
第 6 空与前面语句是相反的, 一个是返回 new RealCustomer(name), 那么此处应填: new Null Customer()
第 7 空, 用工厂创建对象, cf=New CustomerFactory();