![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
И чем твой пример отличается от int x = 75;? 0_o Вообще говоря, тебе не плохо было бы узнать разницу между объявлением и определением. "Заполнять"(а точнее, инициализировать) при объявлении нельзя - так устроен язык С++. В хэдере можно делать абсолютно всё, что можно делать в самом модуле(.cpp), но нужно осозновать возможные последствия содеянного. Попробуй задаться для себя вопросом: в чём для тебя принципиальная разница "заполнения" в хэдере или модуле? Думаю, когда ответишь на него, все вопросы сразу отпадут. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
![]() -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Думаю ответ: хотелось инициализировать общую переменную в одном месте, но ты, почему-то выбрал для этого хэдер(таким образом сделав инициализацию во всех модулях, которые используют этот хэдер), вместо того, чтобы сделать инициализацию в одном из модулей или вообще в отдельном модуле. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
так, если уж разбитраться что подтолкнуло обьявить переменную в хеадере, то скажу что этому предшествовало, предупреждаю что все не очень серьезно. а дело было так, напоминаю что переменная является структурой и вполне вероятно, так как я не совсем ясно представляю всех нюансов достижения будущей программой поставленного результата, эта структура станет массивом структур.. Структура являлась членом некого класса, дойдя до написания конструктора которого я встал перед вопросом заполнения полей структуры( а заполняется она заранее известными данными) , их примерно 10 - 15(полей) т.е не много(чтоб начать плодить хеадеры с коими итак путанница) но и не мало чтоб это незаметно выглядело в конструкторе(строки типа
Кстати уже инициализировал в конструкторе(временно), но однак так и останется.... Сейчас пришло на ум поиграться со значеничми по умолчанию и инициализировать типа статически, но опять же не все компиляторы поддерживают такую фишку в default constructor, есть-ли какие-нибудь соображения?? чты эт не очень серьезно так ка прога и так работть будет Это сообщение отредактировал(а) apook - 22.9.2007, 14:21 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
Ln78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: 13 Всего: 15 |
apook, при очень большом желании можно и зайца курить научить (вопрос зачем?). В твоём случае, один из вариантов может быть такой:
В одном из *.cpp файлов нужно определить _DATA. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
если инициализацией простой не обойтись, то можно сделать следущее:
(надеюсь правильно тебя понял)
|
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Одной из причин было уменьшение строчек кода, хотяб иллюзия этого
![]() Спасибо за предложеннные варианты. -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
как борться с тем что при включении хеадера значительно утяжеляется исполняемый файл, даже если (ради эксперемента) не вызывать ничего из этого файла ?
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
ради эксперимента попробовать не включать такой хедер
![]() Это сообщение отредактировал(а) akizelokro - 28.9.2007, 13:28 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Мне почему-то хочется включить iostream.h
Хотя включив просто iostream.h файл не увеличивается, а если вызвать cout то увеличивается с 4.67 kb до 28.9 kb!!! ![]() а файл string хватает просто включить и файл увеличивается до 70 kb ![]() ![]() ![]() Это сообщение отредактировал(а) apook - 28.9.2007, 14:29 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Странные нынче программисты пошли... no comments -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
apook |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
товарищ Уолтер Савич говорит что в cpp файле для хеадера следует писать
говорится так-же что при таком включении не надо передавать имя такого файла в параметре компилятора, а так же не надо включать его через include напр: #include"somefile.cpp" на практике это не работает. Работает так:
и имя файла передается с пареметром компилятору что-за ? Это сообщение отредактировал(а) apook - 1.10.2007, 07:04 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
apook, ты сам то понял, что написал?
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Да, ну если захотеть не понять то можно и не понять. Извиняюсь я не на экзамене и даже не на уроке чтоб формулировать суперточно. Тебя смутила фраза
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |