можете иметь столько закрытых, защищенных и открытых секций в классе, 
сколько вам потребуется, и эти секции могут следовать в произвольном порядке. 
(Конечно, если встраиваемая функция-член ссылается на другой член, он должен быть 
объявлен до реализации встраиваемой функции-члена). Рассмотрим следующий класс:

    сlass TAnyClass { 
    private:	* 
      int A;   // Доступен только членам TAnyClass 
      void fa(void);   //   "
   protected: 
     int В ;   // Доступен TAnyClass и членам производных классов 
     voidd fb(void) ;         //  "
      int С ;        // Доступен любым членам и всем,  кто его использует 
      vold fc(void);         //   "

    Член А закрыт в TAnyClass и доступен только другим членам этого класса, 
т.е. функции-члены fa(), fb() и fc()  имеют непосредственный доступ к А. Конечно, 
внешние операторы и даже функции-члены производных классов не могут 
ссылаться на А непосредственно. Вдобавок, функция-член fa() может вызываться 
только другими членами TAnyClass. Внешние операторы не могут вызывать 
функцию-член fa(), являющуюся исключительной "частной собственностью" 
TAnyClass.
   Член В и функция-член fb() защищены и доступны другим членам 
TAnyClass и любым членам производных классов. Конечно, вне класса 
защищенные члены имеют закрытый статус. Внешние операторы не могут иметь доступ 
к классу В или функции-члену fb(). 
    Член С и функция-член fc() открыты и свободны для прямого доступа всем 
членам TAnyClass, членам производных классов и операторам вне класса. 
Открытые члены класса всегда доступны для всех, кто использует этот класс. 
   Спеецификаторы доступа private, protected и   public могут также 
предшествовать имени базового класса в объявлении производного класса. 
Основанный на TAnyClass производный класс можно объявить следующим 
образом: 

    class TDerived: public TAnyClass { 
       // Новые данные-члены, функции-члены,  конструкторы etc. 
    } ;

    Спецификатор public можно заменить на private или protected. Если ни один 
из этих спецификаторов доступа не задан, члены наследуемого класса по умолчанию 
закрыты. Спецификаторы влияют на статус наследуемых членов. 
   • Члены открытого базового класса в производном классе сохраняют свои 
спецификации доступа public, protected и private. 
   • Открытые   члены   защищенного   базового   класса   становятся   
защищенными   в   производном   классе. Защищенные и закрытые члены сохраняют 
свои первоначальные спецификации доступа. Все  члены   закрытого  базового   
класса  становятся   закрытыми   в   производном   классе  независимо   от 
первоначальной спецификации доступа этих членов. 
    Третий случай, когда базовый класс объявлен закрытым для производного 
класса, наиболее существенно влияет на наследуемые члены. Для следующего базового класса 

    class TBase {	.                                                            
    protected: 
       int x;
    public:
       int у; 
       ......
    }

    В объявленном следующим образом производном классе 

    class TDerived:   private TBase {	// Обратите внимание на статус "private" 
    public:	
      void f(void); 
    };
 
    функция-член f() имеет доступ к членам х и у, наследованным из класса TBase. 
Однако, поскольку TBase объявлен закрытым базовым классом для класса TDerived, 
статус членов х и у изменился на private. В наследовании

    class TDescendant:  public TDerived { 
    public: 
       void g(void); 

    Главa 14. Объектно-ориентированное программирование 341 
