Члены класса
Классы могут содержать следующие типы участников:
Классы, которые включают классы, структуры и объединения.(См. Вложенные объявления классов и Объединения.)
-
Примечание Друзей включены в предыдущем списке, поскольку они содержатся в объявлении класса.Однако они не истинных членов класса, поскольку они не находятся в области класса.
Заметки
Список членов класса может быть разделен на 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++.