Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
redbaron_ms
#1

Статическое поле класса, имеющее тип того же класса - C++

28.10.2012, 01:36. Просмотров 553. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток.
Как известно, поля класса могут быть ссылками, либо указателями на тот же класс, в котором объявляются, но не могут быть представлены как объекты этого же класса. Это логично.
В свою очередь статические поля - это глобальные переменные, доступные в пределах класса, которые существуют вне зависимости от созданных объектов класса.
Но вот натолкнулся на занимательную конструкцию...

C++
1
2
3
4
5
6
7
8
9
10
11
class Date{
 
int day, month, year;
 
static Date today;
 
public:
 
static int count;
 
};
Подскажите, пожалуйста, почему данный код корректен?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 01:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Статическое поле класса, имеющее тип того же класса (C++):

Только константное статическое поле НЕ МОЖЕТ быть поле членом класса ! - C++
class CCoords { static const float rate = 1.0f; // ОШИБКА !!! bool IsComputed; float x,y; POINT2D ...

Статическое поле,количество экземпляров класса - C++
Помогите понять,статическое поле stcount считает количество созданных экземпляров класса (объектов),я объявляю всего два объекта а он...

Почему метод класса затирает статическое поле - C++
Добрый день :) Я учу самостоятельна с++. Сейчас разбираю тему классы. Вот у меня возник вопрос по коду: #include<iostream> using...

Как в методе класса вызвать другой метод того же класса? - C++
class mate { public: int AplusB(int A, int B) { return A+B; } int AplusBplusC(int A, int B, int C)

Как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса - C++
Здравствуйте. А как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса? Более...

Мое константное статическое поле только что было использовано до того как оно создалось? - C++
В названии темы уже понятно, думаю, что у меня за проблема. Я экспериментировал со статическими полями классов (в частности с...

2
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.10.2012, 01:42 #2
Это стандарт. Так как статическое поле принадлежит классу, а не экземпляру, оно может иметь тип того же класса.
1
redbaron_ms
28.10.2012, 01:53 #3
Понял, спасибо.

Цитата Сообщение от Герц Посмотреть сообщение
Так как статическое поле принадлежит классу, а не экземпляру
Гмм, видимо, именно поэтому оно и не учитывается при определении размера объекта.
Принадлежащее всем (при патронаже класса) - ничьё. Коммунизм в чистом виде
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 01:53
Привет! Вот еще темы с ответами:

Программа содержит два класса. Оба класса содержат по одному целому полю и по одному указателю на символьный тип. - C++
Помогите решить с объяснениями. Программа содержит два класса. Оба класса содержат по одному целому полю и по одному указателю на...

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО! - C++
Друзья! Почему так? #include <windows.h> #include <iostream> using namespace std; //Вот главный класс class A{ ...

Конструктор с параметром-объектом того же класса - C++
Была поставлена задача: определить конструктор с параметром-объектом того же класса, но я совсем не понимаю, что от меня требуется?...

Тип производного класса - C++
Как можно узнать тип производного класса на этапе компиляции?#include <iostream> #include <type_traits> struct A {}; struct B : A...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru