![]() |
|
Модераторы: bsa |
![]()
|
|
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Вы опять наступили на свои грабли.
Определяйте глобальные переменные только в одном месте и все будет нормально. Просто возьмите это за правило. У вас строка SetPower *SetMUni; Есть и в multipower.cpp и в SetPower.cpp (может и еще где - дальше не смотрел) Вы определяете глобальную переменную с одинаковым именем в двух разных модулях программы. Линкер естественно ругается. |
|||
|
||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Хоть застрелится блин. Ну никак не могу сделать глобальную, как только уже не пробовал.
В Form1.h в функциях пишу и все нормально создается а когда выношу мусор какой то Во, еще заметел что все что создается не из функций создается каряво, а тоесть правильное только одно поле BitLen что то странное вообще Это сообщение отредактировал(а) maxi91m - 22.10.2009, 22:35 --------------------
|
|||
|
||||
| Anikmar |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Попробуйте так: Создайте GlobalVars.cpp и GlobalVars.h файлы. В cpp внесите строки
В h внесите строки
Уберите из всех остальных файлов проекта (и cpp и H) строку SetPower *SetMUni; Попытайтесь скомпилить. В тех модулях, где ругнется добавьте #include "GlobalVars.h" |
||||||
|
|||||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Неа, указатель в никуда. Я в замешательстве.
1)вставил #include "GlobalVar.h" в Form1.h все скомпилировалась но указатель получился в никуда 2)вставил #include "GlobalVar.h" в Form1.h и в SetPower.cpp аналогично чушь. может что с конструкторами не так.... Это сообщение отредактировал(а) maxi91m - 22.10.2009, 23:12 --------------------
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Вы где проверяете валидность указателя? Имейте в виду, что при каждом нажатии 1-й кнопки он у вас заново создаетеся.
Скиньте последнюю версию того, что у вас есть. |
|||
|
||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Там я сейчас пытаюсь понять про констрктор и присваивание, придчуствие что они как то не так работают, все что связанное с указателем осталось, добавил лишь пару объектов.
Присоединённый файл ( Кол-во скачиваний: 3 )
multipower.rar 5,19 Kb--------------------
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
В коде SetMUni = new SetPower(n) Не вызывается конструктор присваивания.
Там идет такая последовательность: 1. Выделяется блок памяти под объект 2. Вызывается конструктор SetPower(int) с параметром n 3. Адрес этого блока присваивается указателю SetMUni |
|||
|
||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Хм. как же тогда в явном виде конструктор присваивания вызвать?
--------------------
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
||||
|
||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Что же не так работает. не пойму.
понял только одно что все что создается в не функций класса Form1 создается не правильно! А почему? Не пойму... Вот проект, на VS Это сообщение отредактировал(а) maxi91m - 24.10.2009, 10:37 --------------------
|
|||
|
||||
| maxi91m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 191 Регистрация: 14.1.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Никто больше ничего не скажет?
--------------------
|
|||
|
||||
![]()
|
| Правила форума "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. |