Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> static + class = плохо 
:(
    Опции темы
Nuzur
Дата 25.12.2005, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Использую VC6. Но поскольку вопрос "мало" его касаеться то пишу сюжа.

создал клас:

Код

class MC
{
Public:
          static unsigned int GetID()
          {
                return ID;
          }
....
private:
          static unsigned int ID;
...
}


И все оно нармально до тех пор пока не начинаеш использовать то что "наваял", тоесть на етом месте все ок, но как только в в реализации пишеш:

ID = 1;

и компилеш сразу же вылазет unresolved чего-то там.

Мне нужно обмениваться данніми между класами, использовать глобальную переменную не хочеться, так не работает, кстати почему?


--------------------
Never again...
PM MAIL   Вверх
maxim1000
Дата 25.12.2005, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



дело в том, что ID в данном случае играет роль глобальной переменной
а для таких переменных нужно выделять память
поэтому надо в одном из cpp-файлов написать:
Код

unsigned int MC::ID;



--------------------
qqq
PM WWW   Вверх
Nuzur
Дата 25.12.2005, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Нет не сработало, если делать так:
unsigned int CXSenderDlg::EditID;
тогда:
error C2655: 'EditID' : definition or redeclaration illegal in current scope

Если же CXSenderDlg::EditID;
то
error LNK2001: unresolved external symbol "private: static unsigned int CXSenderDlg::EditID" (?EditID@CXSenderDlg@@0IA)

Или я что-то не понял?


--------------------
Never again...
PM MAIL   Вверх
MAKCim
Дата 25.12.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Код

...
unsigned int MC::ID=0;



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Nuzur
Дата 25.12.2005, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Ув. MAKCim наверно вы издиваетесь?

Да кстати ув. maxim1000, дело в том что вы наверное имел в виду external.
Использую я ID в класе реализации, и даже там он плюэться unresolved external symbo, поетому не не совсем понятно что касаеться глобальной переменной. Но возможно вы и правы великим профи я себя не считаю, а по сему...
Жду.



--------------------
Never again...
PM MAIL   Вверх
DeadSoul
Дата 25.12.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 2
Всего: 11



Nuzur, MAKCim не издевается. Это ВЫ не умеете читать\понимать. Сразу после всех инклудов в один из cpp-файлов нужно вписать строку указанную MAKCim-ом


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Nuzur
Дата 25.12.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Приношу свое извиненья MAKCim , я просто не врубился что еее надо так вот "обьявить" глобально, виноват исправлюсь. Все заработало.
До етого я так обьявлял в теле функции и ничего не работало. Спасибо всем кто принимал участии.
Добавлено @ 20:12
2 MAKCim завтра я исправлю вам репутацию, сегодня нельзя.


--------------------
Never again...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.