7.6.       257

//...
};

        de?ect_response:

//. . .

map<int,defect_reponse *> ErrorTable;

de?ect_response * Response;

Response = new de?ect_response;

ErrorTable[123] = Response;

//. . .

     ( )    123. 
         -
 defect_response   ,    . ,
     :

class exception_response : public defect_response{

//. . .
public:

int doSomething(void)

//. . .
};

  exception_response    de?ect_response, -
           ErrorTable    

exception_response.

//. . .
map<int,defect_reponse *> ErrorTable;

defect_response * Response;

exception_response *Response2 ;

Response = new de?ect_response;

Respone2 = new exception_response;

ErrorTable[123] = Response; //   

// defect_response.
ErrorTable[456] == Response2; //   

// exception_response.
//. . .

  ,    ErrorTable    -
     (    -
). ,    doSomething () 
ProblemSolver     :

//. . .
defect_response *ProblemSolver;

ProblemSovler = ErrorTable[123];

ProblemSolver->doSomething() ;

ProblemSovler = ErrorTable[456];

ProblemSovler->doSomething() ;

//. . .

     ProblemSolver     
de?ect_response,        -
 exception_response    ,   
de?ect_response.   doSomething ()    
defect_response,     .  