![]() |
|
Модераторы: bsa |
![]()
|
|
| cia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: нет Всего: 4 |
Кажется туплю страшно, но что-то не допираю чем не нравится статический член класса...
Линковщик ругается: [Linker Error] Unresolved external 'T::i' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
или
|
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
статическую переменную можно не инициализировать. достаточно описать вне класса.
|
|||
|
||||
| cia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: нет Всего: 4 |
Если i объявить внутри функции, то работает.
Я не понимаю почему не работает, когда i объявлена как член класса, т.е. когда i статична не для функции, а для всех экземпляров классов. ЗЫ. Использую BCB 6. Добавлено через 1 минуту и 24 секунды
А если хочется все-таки сделать не глобальную переменную, а именно член класса? |
|||
|
||||
| mrbrooks |
|
||||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
я тебе и говорю про член класса.
Добавлено через 4 минуты и 59 секунд использовать соответсвенно
есесно если класс создаешь в отдельном файле - сий файл надо заинклюдить к реализации. Это сообщение отредактировал(а) mrbrooks - 7.8.2008, 14:21 |
||||
|
|||||
| cia |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 15.1.2007 Репутация: нет Всего: 4 |
А... все разобрался, спасибо за помощь.
Я не написал int T::i; вне класса. Думал, вообще-то что этого не требуется. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
потому что у каждой статической переменной должно быть свое место.. При описании ее в классе , линковшик не знает куда "лучше" поместить переменную, ну а каждый метод в реале является статической функцией со скрытым параметром this, т. е. определеная внутри метода статическая переменная имеет свое вполне определенное место.. |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
Короче говоря:
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |