Проблема со статическим объектом |
Здравствуйте, гость ( Вход | Регистрация )
Проблема со статическим объектом |
ruzik |
10.10.2011, 22:38
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Здравствуйте, есть код:
Geter.h
Geter.cpp
И на него выдает ошибки: Ошибка 1 error LNK2001: неразрешенный внешний символ ""private: static class RizekMath * Geter::gPRizekMath" (?gPRizekMath@Geter@@0PAVRizekMath@@A)" rizekmath.obj Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов C:\Users\ruzik\Documents\Visual Studio 2008\Projects\RizekMath\Debug\RizekMath.exe Если сделать так:
То ошибок нет, хотя все тоже самое должно быть по-смыслу, + выскакивают эти предупреждения Предупреждение 1 warning C4091: static : пропускается слева от 'Geter', когда ни одна переменная не объявлена c:\users\ruzik\documents\visual studio 2008\projects\rizekmath\rizekmath\geter\Geter.h 15 Но статика не срабатывает в этом случае! Подскажите что не так и в чем разница Заранее спасибо! |
|
|
Алексей1153 |
11.10.2011, 9:02
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
нужно добавить следующее:
Geter.cpp
Цитата Подскажите что не так и в чем разница разница в том, что это статический член класса Вопрос - не по Qt, а по C/C++ Сообщение отредактировал Алексей1153 - 11.10.2011, 9:07 |
|
|
ruzik |
11.10.2011, 17:17
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Спасибо за помощь!
|
|
|
Алексей1153 |
11.10.2011, 18:46
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
ruzik, тогда я не уточнил, это называется инстанцировать (от instance)
|
|
|
ruzik |
11.10.2011, 19:33
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Стойте, попробовал то что вы мне предложили, и получил это:
Предупреждение 1 warning C4091: static : пропускается слева от 'Geter', когда ни одна переменная не объявлена c:\users\ruzik\documents\visual studio 2008\projects\rizekmath\rizekmath\geter\Geter.h 15 Ошибка 2 error C2761: RizekMath *Geter::gPRizekMath: повторное объявление функции не разрешается c:\Users\ruzik\Documents\Visual Studio 2008\Projects\RizekMath\RizekMath\Geter\Geter.cpp 3 Ошибка 3 fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции c:\Users\ruzik\Documents\Visual Studio 2008\Projects\RizekMath\RizekMath\Geter\Geter.cpp 3 Ничего другого не добовлял, только в cpp
|
|
|
Алексей1153 |
12.10.2011, 8:18
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
ruzik, приложи проект
|
|
|
ruzik |
12.10.2011, 20:48
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 254 Регистрация: 23.2.2011 Из: Саратов Пользователь №: 2436 Спасибо сказали: 2 раз(а) Репутация: 0 |
Проект достаточно, большой и выкладывать его всего не вижу смысла, приложил сам класс который и рассматривается(Geter)
Я нашел загвоздку, если обозначить все члены как статичные все ок, но если обозначить класс как статичный то все ок P.S. я всегда думал что если обозначить класс статичным, то просто все его элементы будут статичными, но видимо я ошибался Как ни странно википедия говорит о том же http://ru.wikipedia.org/wiki/%D0%A1%D1%82%...%B0%D1%81%D1%81 Хотя если сделать как я то ничего вообще не работает, то есть ошибок не выдает, но и объекты не статичные Вот полный код того что я имею: Geter.h
Geter.cpp
И например так проверяем это дело
А нет все работает, это я не заметил когда выводило Алексей1153, еще раз большое спасибо вам за помощь! P.S. надеюсь вы не успели прочитать мой бессмысленный монолог и потратить свое время на решение мнимой проблемы))
Прикрепленные файлы
|
|
|
Алексей1153 |
13.10.2011, 11:24
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
ruzik, да я как бы и не успел ) Но всё равно, что значит
Цитата если обозначить класс статичным ? такое разве бывает ? Если и бывает, то это явно не делание статическими всех членов, что-то другое. Сообщение отредактировал Алексей1153 - 13.10.2011, 11:25 |
|
|
Текстовая версия | Сейчас: 28.11.2024, 17:54 |