Автор |
Съобщение |
valioman
Ранг: Почетен член
Регистриран на: Съб Сеп 17, 2005 4:07 pm Мнения: 810 Местоположение: Сливен
|
Re: C++ builder споделяне на променливи
В трети cpp файл (клас,обект) ... на борланд съм пипал само делфито преди години но и там нещата са същите .. просто трябва обекта да е деклариран като публичен да речем в main() процедурата която ти стартира Form1 .
|
Вто Май 09, 2017 9:42 pm |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: C++ builder споделяне на променливи
Вземи една книжка за С и почети малко. Ако искаш да станеш програмист де, не просто поредния драскач, който пише софтуер на принципа проба-грешка. Стига си пробвал да местиш от единия фаил в другия, без да разбираш какво точно правиш. В крайна сметка ще вземе да тръгне и ще се хвалиш после, че си написал програма...
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Сря Май 10, 2017 7:54 am |
|
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 1:21 am Мнения: 10622 Местоположение: София
|
Re: C++ builder споделяне на променливи
Тая работа само с четене не става. Трябва и някой, който да мета по някой жокер от време на време. Например, в прословутия учебник на Кърнингам - Ричи има неща които са обяснени доста мъгляво. Тоест, трябва да се"досещаш" каво са имали предвид авторите, което е тъпо...
|
Сря Май 10, 2017 9:21 am |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: C++ builder споделяне на променливи
Казусът, който е повдигнат в темата, е извън скопа на ANSII C. Чисто C++ си е - класове.
|
Сря Май 10, 2017 9:26 am |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: C++ builder споделяне на променливи
Винаги препоръчвам това: Програмиране III (C и C++), Момчев, Чакъров, 1996. Издателство на ТУ-София. Много разбрано написано, с добри примери и на български. За съжаление почти ненамираемо. Но едва ли човек дето рограмира като "цъка формички" би се загледал в подобна "скучна" литература. Вътре в книжката прозорци и контроли няма, само "сух конзолен изход".
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
Последна промяна Цецо на Сря Май 10, 2017 9:41 am, променена общо 2 пъти
|
Сря Май 10, 2017 9:36 am |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10375 Местоположение: Добрич
|
Re: C++ builder споделяне на променливи
Бе баш си е чисто С... ти ако не знаеш какво е хедър и инклудваш един сорс файл в друг малко ти е рано да боравиш с класове
|
Сря Май 10, 2017 9:39 am |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: C++ builder споделяне на променливи
Между другото в повечето учебници по Ц/Ц++, много малко се набляга на структурирането на файловете - хедъри, сорсове, предпроцесор, както и самия процес на компилиране и линкване. Което си е цяла една дисциплина за един семестър. В ТУ например въобще не се преподаваха такива неща. А гледам, че студенти завършили програмиране "на запад" си имат доста добри познания в тая област, демек учили са ги принудително.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Сря Май 10, 2017 9:43 am |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2591 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Ами прочетох някои неща. Цялата работа се оказа, че е щяла да стане със extern, но онзи ден не стана с тази ключова дума. Може би защото бях инклуднал *.cpp Никакви класове не съм писал.
|
Пет Май 12, 2017 10:19 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28019 Местоположение: София
|
Re: C++ builder споделяне на променливи
Абе extern става ама по принцип не е добра идея. То и аз така пиша но на мен ми се случва 1 на 5 години и то да тествам нещо, но не е ок за РС, за контролер особенно малък глобалните променливи нямат много алтернативи, налага се да ги имаш, но за РС не е точно така.
|
Съб Май 13, 2017 4:15 am |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2591 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Ами аз от това което разбрах: Това което е в хедъра се "копира" там където е инклуднато. Правиш си файл globals.cpp със функции и променливи. Дефинираш ги вътре. Отвън в хедъра globals.h ги декларираш само с extern. И навсякъде инклудваш globals.h . Иначе може във всяко cpp да ги декларираш променливите с extern ама е играчка. Мисля, че доста културно ми се получи и какамангата се оправи. Другия вариант като част от обект, не ми харесва, защото се пише после повече име на обект ->променлива. Първобитния вариант със викане на функция която да я променя е голяма гимнастика.
|
Съб Май 13, 2017 11:45 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 28019 Местоположение: София
|
Re: C++ builder споделяне на променливи
Ами ако използваш обектно ориентиран език е добре да пишеш обектно ориентиран код. Да може изцяло с глобални, лично за мен е най-лесно но май не е най-добрият или правилен начин, все пак не пишеш за пик16, както и обратното де. Ама аз не съм писач, да кажат тия дето са истински програмисти, аз драскам по нешо чат пат като ми притрябва.
|
Нед Май 14, 2017 2:56 am |
|
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 12:22 pm Мнения: 1947 Местоположение: София
|
Re: C++ builder споделяне на променливи
Нищо му няма на extern, обикновено се прави когато нещо е дефинирано някъде в .c/cpp. В такъв случай linker обикновено се грижи открие къде.
|
Съб Юни 24, 2017 12:02 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2591 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Да забелязах че компилатора прави обектни файлове от .cpp-тата а линкера ги събира във .exe или .hex ( в зависимост дали сме на C++ builder или MPLAB). Ако променливата е декларирана с extern а не е дефинирана в съответния сорс (.cpp) линкера дава грешка че не може да намер такъв обект.
|
Нед Юни 25, 2017 10:33 pm |
|
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 8:39 pm Мнения: 1972
|
Re: C++ builder споделяне на променливи
Нормално. extern type var казва на компилатора, че има такава променлива. type var му казва да задели памет за нея, т.е. да я създаде. Когато линкера "събира" всичко необходимо, ако е пропуснато второто логично е да вдигне "аларма", че нещо му липсва .
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ!
|
Пон Юни 26, 2017 5:48 am |
|
|
RM
Ранг: Почетен член
Регистриран на: Нед Окт 19, 2008 6:26 pm Мнения: 609
|
Re: C++ builder споделяне на променливи
Е стана ли.
|
Пет Окт 06, 2017 8:29 pm |
|
|