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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация одного объекта для двух .cpp 
:(
    Опции темы
GrAndrey
Дата 15.1.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.7.2003

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



Простите, что так много спрашиваю и подобные глупые вопросы, но надо...

Я создал объект (инициализировал struct) в одном .cpp, но упоминать его приходится и в другом cpp файле.Поначалу компилятор жаловался, что не знает что это такое. Сделал во втором #include<[первый файл].cpp>, заработало. Но при этом как-то неправильно обращается к полям объекта, + предупреждения о двойном объявлении, хотя все другие инклуды из второго я убрал. Как здесь нужно правильно поступать?

Это сообщение отредактировал(а) GrAndrey - 15.1.2004, 16:23
PM MAIL   Вверх
Ars
Дата 15.1.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

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



Для глобальных объектов в других сpp объявляешь тот же объект, но с external:
Код
external struct CMyStruct MyStruct;

При этом определение CMyStruct должно быть видно

Это сообщение отредактировал(а) Ars - 15.1.2004, 16:39


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
GrAndrey
Дата 15.1.2004, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.7.2003

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



Большое спасибо! Только, оказалось, extern. External, похоже, в Паскале.
PM MAIL   Вверх
Ars
Дата 15.1.2004, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

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



Правильно, extern. С(п)лоховал маленько smile.gif


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
leniviy
Дата 10.2.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



у меня похожая проблема
надо один раз при запуске программы вызвать loadlibrary/getprocaddress для инициализации указателя, а в конце freelibrary
хочется, чтобы это делал какой-нибудь конструктор, но если я оформлю указатель на процедуру внутри класса, то теряется лаконичность кода:
вместо
Код
extproc(a,b,c);
получится
Код
struct1.extproc(a,b,c)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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