![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| flagist0 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Подскажите плиз, где в сети можно почитать про статические члены класса и переменные. У Страуструпа и Шилдта про это вскользь сказано, а хочется понять, например, почему память под статик-переменные надо выделять самому.
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
ух-ты, класс, а откуда ты это вычитал? первый раз слышу и никогда не выделял. З.Ы. почитай Дейтелов |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
может, инициализировать?
тогда, вроде, компилятор адрес назначает |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
flagist0, в случае со статическими членами - там не память выделять нужно, а сам член определять(как и любую другую сущность в языке, иначе будет "unresolved external reference").
В случае со статическими переменными - такие же переменные, как и обыкновенные(автоматические), только время жизни у них другое и гипотетически, место расположения в памяти другое. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| flagist0 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Спасибо-спасибо!
Да уж, криво выразился - я имел в виду, что есть у меня в классе статическая переменная:
Далее, по совету intuit.ru
Так вот, зачем ее надо определять в срр-файле? Ведь компилятор прошелся по определению класса, и имхо при создании его первого экземпляра может выделить под нее память (а не в стеке, так?) автоматически? Или это все из-за невозможности ее инициализировать в описания класса? Это сообщение отредактировал(а) flagist0 - 30.11.2007, 19:38 |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
это зачем здесь? указатель на функцию у тебя что, член класса? |
|||
|
||||
| flagist0 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
JackYF:
Да, это член класса. Спасибо, уже разобрался, из ответа убрал. |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
flagist0, ну, во-первых, ИНТУИТ славится своими недо-учебниками
Смотри: есть объявление и есть определение. Объявления:
Всё перечисленное выше - объявления(кроме определения самого класса A). Теперь определения всего этого:
Почему-то ты не удивляешься, что не нужно определять ф-ции, классы, их методы и т.д., но удивляешься, что нужно определять статические члены -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
сегмент данных или BSS -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| flagist0 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Спасибо за ответы! Особенно за микропинок насчет объявления и определения функции - это все объяснило
SOLVED |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |