Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Использование одной структуры в нескольких Unit.cpp

1.9K
26 февраля 2004 года
elderb
61 / / 26.01.2004
В файле Unit1.h объявлена структура, создан на неё указатель.
 
Код:
struct Base{AnsiString name;
int age;};
Base *b;

В файле Unit1.cpp выделяется под неё память
 
Код:
b=new Base;

Но когда производятся попытки работы со структурой в файле Unit2.cpp то возникают ошибки доступа к памяти. Unit1.cpp и Unit2.cpp объединены своими Untit.h Спасибо.
3
26 февраля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by elderb
В файле Unit1.h объявлена структура, создан на неё указатель.
 
Код:
struct Base{AnsiString name;
int age;};
Base *b;

В файле Unit1.cpp выделяется под неё память
 
Код:
b=new Base;

Но когда производятся попытки работы со структурой в файле Unit2.cpp то возникают ошибки доступа к памяти. Unit1.cpp и Unit2.cpp объединены своими Untit.h Спасибо.



Не стоит определять какие-либо объекты (переменные) в заголовочных файлах (*.h). Т.о. у тебя созданы два разных указателя: один в Unit1, другой в Unit2.
Простейший, примитивный и некрасивый выход - это объявить глобальный указатель в заголовочном файле, а определить его уже в одном из cpp.

 
Код:
// Unit.h
struct Base{AnsiString name;
int age;};
extern Base *b;

 
Код:
// Unit1.cpp
Base *b;
............
b=new Base;

Есть масса других более красивых решений, но они зависят от конкретной задачи. Одно из них - использование синглтонов, но это в двух словах не расскажешь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог