Поделиться через


Члены класса

Классы могут содержать следующие типы участников:

Заметки

Список членов класса может быть разделен на private" protected и Открытый разделах использование ключевых слов известные как описатели доступа.Двоеточие . следуйте описателем доступа.Этим разделам не требуется сопредельны, т е все эти ключевые слова могут быть указаны несколько раз в списке членов.Ключевое слово не будет назначение к всех элементов вверх до следующего описателя доступа или заключительной фигурные скобки.

Объявления членов в списке элемента разделяются точками с запятой. ;.См. синтаксис объявления члена класса.

Назначение списка членов:

  • Объявите полный набор элементов для данного класса.

  • Укажите доступ (открытый или защищенный), закрытые, связанный с разными участниками класса.

В объявлении списка членов можно объявлять члены только один раз. redeclaration элементов формирует сообщение об ошибке.Поскольку список членов полный набор элементов нельзя добавлять элементы к данному классу с последующими объявлениями класса.

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

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

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

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

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}
ПримечаниеПримечание

Имя класса CanInitpreceding, i определить i определяемые член класса CanInit.

Только для систем Microsoft

Microsoft C++ позволяет интеграл статического, const и элементы данных const enum, которую необходимо инициализировать в определении класса.См. Расширения Майкрософт для языков c и C++.

См. также

Ссылки

Классы, структуры и объединения