![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
ZufuS |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
F_Rectangle.obj : error LNK2001: unresolved external symbol "protected: static struct HDC__ * Figure::hdc" (?hdc@Figure@@1PAUHDC__@@A) Debug/k1.exe : fatal error LNK1120: 1 unresolved externals что ему не нравится, и как с этим бороться? |
||||||
|
|||||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
в F_Rectangle.cpp напиши
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
ZufuS |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Это хороший стиль? Он же будет вызываться чаще чем надо. У меня не только F_Rectangle будет наследовать Figure, это значит в каждый надо написать?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Так. ты объявил hdc статическим членом класса. Поэтому ты должен задать его значение на этапе компиляции, так как потом ты не сможешь узнать, проинициализирован он или нет, так как эта переменная общая для все экземпляров Figure и ее потомков!
|
|||
|
||||
ZufuS |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ZufuS,
а почему мы тип возвращаемого значения во внешней реализации метода указываем он ведь известен в объявлении класса? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
ZufuS |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
обычно если при инициализации переменной написать её тип, но после того как она уже объявлена, компилятору не понравится то что её объявили два раза. а здесь наоборот.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ZufuS,
речь идет о классах тут уместна аналогия с методом -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
ZufuS |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 237 Регистрация: 12.7.2006 Репутация: нет Всего: нет |
Ясно, всё работает, спасибо. Буду рад, если кто-нибудь объяснит, почему здесь уместна аналогия с методом.
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
Да, вопрос интересный, по идее методами тоже можно было бы не указывать тип возвращаемого значения в реализации, ведь он задан при объявлении.
Видимо для наглядности указывается, как для методов, так и для статических членов-данных, не вижу других причин, если они есть тоже буду рад услышать обоснование. |
|||
|
||||
DjoNIK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Определение класса - не одно и то же, что определение объекта класса(или его статичеких членов). Определение класса никак не отображается на выделении памяти в программе. Мы выносим определение членов класса с указанием типа для выделения определённого количества памяти. Если я правильно понимаю. Это сообщение отредактировал(а) DjoNIK - 19.8.2007, 21:21 -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |