閱讀下列說明和C++代碼,填補(bǔ)代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
以下C++代碼實(shí)現(xiàn)一個簡單客戶關(guān)系管理系統(tǒng)(CrM)中通過工廠(Customerfactory)對象來創(chuàng)建客戶(Customer)對象的功能??蛻舴譃閯?chuàng)建成功的客戶(realCustomer)和空客戶(NullCustomer)??湛蛻魧ο笫钱?dāng)不滿足特定條件時(shí)創(chuàng)建或獲取的對象。類間關(guān)系如圖6-1所示。
圖6-1
【C++代碼】
#include
#include
using namespace std;
class Customer{
protected:
string name;
public:
( 1 ) boll isNil()=0;
( 2 ) string getName()=0;
﹜;
class RealCustomer ( 3 ){
Public:
realCustomer(string name){this->name=name;﹜
bool isNil(){ return false; ﹜
string getName(){ return name; ﹜
﹜;
class NullCustomer ( 4 ) {
public:
bool isNil(){ return true; ﹜
string getName(){ return 〝Not Available in Customer Database〞; ﹜
﹜;
class Customerfactory{
public:
string names[3]={〝rob〞, 〝Joe〞,〝Julie〞﹜;
public:
Customer*getCustomer(string name){
for (int i=0;i<3;i++){
if (names[i].( 5 ) ){
return new realCustomer(name);
﹜
﹜
return ( 6 );
﹜
﹜;
class CRM{
public:
void getCustomer(){
Customerfactory*( 7 );
Customer*customer1=cf->getCustomer(〝Rob〞);
Customer*customer2=cf->getCustomer(〝Bob〞);
Customer*customer3=cf->getCustomer(〝Julie〞);
Customer*customer4=cf->getCustomer(〝Laura〞);
cout<<〝Customers〞<<endl;
cout<getName()<<endl; delete customer1;
cout<getName()<<endl; delete customer2;
cout<getName()<<endl; delete customer3;
cout<getName()<<endl; delete customer4;
delete cf;
﹜
﹜;
int main(){
CRM*crs=new CRM();
crs->getCustomer();
delete crs;
return 0;
﹜
/*程序輸出為:
Customers
rob
Not Available in Customer Database
Julie
Not Available in Customer Database
*/</endl; delete customer4;
</endl; delete customer3;
</endl; delete customer2;
</endl; delete customer1;
</endl;