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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Выделение памяти под указатель(Глобальный), Глобальный указатель на объект 
:(
    Опции темы
Anikmar
Дата 22.10.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вы опять наступили на свои грабли.
Определяйте глобальные переменные только в одном месте и все будет нормально. Просто возьмите это за правило.
У вас строка
SetPower *SetMUni;
Есть и в multipower.cpp и в SetPower.cpp (может и еще где - дальше не смотрел)

Вы определяете глобальную переменную с одинаковым именем в двух разных модулях программы. Линкер естественно ругается.
PM MAIL ICQ   Вверх
maxi91m
  Дата 22.10.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хоть застрелится блин. Ну никак не могу  сделать глобальную, как только уже не пробовал.

В Form1.h в функциях пишу и все нормально создается а когда выношу мусор какой то

Во, еще заметел что все что создается не из функций создается каряво, а тоесть правильное только одно поле BitLen что то странное вообще

Это сообщение отредактировал(а) maxi91m - 22.10.2009, 22:35
--------------------
PM MAIL ICQ   Вверх
Anikmar
Дата 22.10.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(maxi91m @  22.10.2009,  22:22 Найти цитируемый пост)
Хоть застрелится блин. Ну никак не могу  сделать глобальную, как только уже не пробовал.

Попробуйте так:
Создайте GlobalVars.cpp и GlobalVars.h файлы.

В cpp внесите строки
Код

#include "GlobalVars.h"
SetPower *SetMUni;


В h внесите строки
Код

#ifndef __GlobarVars__H__
#define __GlobarVars__H__

#include "SetPower.h"

extern SetPower *SetMUni;

#endif


Уберите из всех остальных файлов проекта (и cpp и H) строку SetPower *SetMUni;

Попытайтесь скомпилить. В тех модулях, где ругнется  добавьте  #include "GlobalVars.h"

PM MAIL ICQ   Вверх
maxi91m
Дата 22.10.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Неа, указатель в никуда. Я в замешательстве.  
1)вставил #include "GlobalVar.h" в Form1.h все скомпилировалась но указатель получился в никуда 
2)вставил #include "GlobalVar.h" в Form1.h и в SetPower.cpp аналогично чушь.

может что с конструкторами не так....

Это сообщение отредактировал(а) maxi91m - 22.10.2009, 23:12
--------------------
PM MAIL ICQ   Вверх
Anikmar
Дата 23.10.2009, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вы где проверяете валидность указателя? Имейте в виду, что при каждом нажатии 1-й кнопки он у вас заново создаетеся.

Скиньте последнюю версию того, что у вас есть.
PM MAIL ICQ   Вверх
maxi91m
Дата 23.10.2009, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Там я сейчас пытаюсь понять про констрктор и присваивание, придчуствие что они как то не так работают, все что связанное с указателем осталось, добавил лишь пару объектов.


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  multipower.rar 5,19 Kb
--------------------
PM MAIL ICQ   Вверх
Anikmar
Дата 23.10.2009, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В коде SetMUni = new SetPower(n) Не вызывается конструктор присваивания.
Там идет такая последовательность:
1. Выделяется блок памяти под объект
2. Вызывается конструктор SetPower(int) с параметром n 
3. Адрес этого блока присваивается указателю SetMUni


PM MAIL ICQ   Вверх
maxi91m
Дата 23.10.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хм. как же тогда в явном виде конструктор присваивания вызвать?
--------------------
PM MAIL ICQ   Вверх
Anikmar
Дата 23.10.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(maxi91m @  23.10.2009,  14:36 Найти цитируемый пост)
Хм. как же тогда в явном виде конструктор присваивания вызвать? 

Зачем?
a=b
Вот явный вызов.
Это я к тому, что проблема у вас не в конструкторе присваивания.

PM MAIL ICQ   Вверх
maxi91m
Дата 23.10.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Что же не так работает. не пойму.
понял только одно что все что создается в не функций класса Form1 создается не правильно! А почему? Не пойму...


Вот проект, на VS


Это сообщение отредактировал(а) maxi91m - 24.10.2009, 10:37
--------------------
PM MAIL ICQ   Вверх
maxi91m
Дата 3.11.2009, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Никто больше ничего не скажет?
--------------------
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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