8.2.        285

virtual void subtract( CORBA::ULong X ) = 0;

virtual CORBA::Long result() = 0;

protected:

adding_machine() {} ;

private:

adding_machine( const adding_machine& );

void operators( const adding_machine& );

};

class adding_machine_stub : virtual public adding_machine{
public:

virtual ~adding_machine_stub();

void add( CORBA::ULong X ) ;

void subtract( CORBA::ULong X );

CORBA::Long result() ;

private:

void operators( const adding_machine_stub& );

};

 adding_machine. idl      ,  
adding_machine.h       . 
  ,    IDL-, 
 . ,   8.4   -
 ,        ,
 IDL-.

//  8.4.    ,
//               IDL-

class adding_machine_impl : virtual public

adding_machine_skel{
private:

CORBA::Long Result;

public:

adding_machine_impl(void)
{

Result = 0;

};

void add(CORBA::ULong X)
{

Result = Result + X;

};

void subtract(CORBA::ULong X)
{

Result = Result - X;

};

CORBA::Long result(void)
{

return(Result) ;

};

};

   ,  IDL-   -
 adding_machine,  adding_machine_skel.    ,