Несколько "частных" объявлений в классе

Я просматривал некоторый открытый исходный код и нашел объявление класса, например:

class Foo{
    private:
        // declarations
    private:
        // declarations
    private:
        // declarations
    public:
        // declarations
};

Есть ли время, когда вы захотите сделать это, кроме как напомнить вам о конфиденциальности членов при наличии очень длинного списка объявлений?

4 ответа

Решение

Это особенно полезно для этого типа сценария:

class SomeClass
{
   // COnstructors etc.
   public:
      SomeClass();
      SomeClass(const SomeClass& other);
      ~SomeClass();
      SomeClass operator=(const SomeClass& other);
      SomeClass(const OtherClass& other); 

   // Internal use functions. 
   private:
       int SomePrivateFunc();
       int OtherPrivateFunc();

   // Functions that "do stuff" with this class. 
   public:
       int SomeFunc();
       int OtherFunc();

   // Private member variables. 
   private:
       int x, y; 

   // Public member variables.
   public:
       int value; 
}

(Комментарии как // Constructurs etc. просто есть, чтобы показать, что это раздел "эти вещи принадлежат друг другу")

Да, вы можете сделать это, чтобы запомнить конфиденциальность членов, а также разделить типы данных, атрибуты и методы вашего класса и т. Д.

Это не так, и вы можете быть правы, это может быть напоминанием, семантически это то же самое, что использовать его только один раз. На мой взгляд (и использование) использование одного раздела более одного раза может сбить с толку и ввести в заблуждение читателей, не говоря уже о том, что более сильное напоминание использует комментарии, особенно для членов структуры в группы.

Я предполагаю, что вы говорите о коде C++. В C# вы предполагаете объявить аксессор как (public) перед каждой отдельной переменной. это делает код немного более читабельным, я думаю,

Другие вопросы по тегам