Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:54 12.07.25 
Компютри и Интернет
   >> Програмисти
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Глобални променливи във VC?нови  
Автор гого ()
Публикувано26.07.00 09:26



Сблъсках се с нещо, на пръв поглед елементарно. Как мога така да декларирам някоя променлива, че да е достъпна за четене от повече от един клас? Значи декларирам я като public, после инклудвам хедъра на класа й в сорса на другия клас и нищо не става. Дава ми я undefined, независимо какво правя. Не ми я признава нито самостоятелно, нито като обект на нейния клас. В help-a четох за extern променливи, ама там пише за нормално С++, което си има и main функция и работата е ясна - квото е преди main-a е глобално. Ако някой може да ми каже как става тая работа ще съм му благодарен, че по метода на пробите и грешките съвсем се изнервих. П.П. Извинявайте, че свалям нивото с такива елементарни въпроси.

Тема Глобални променливи във VC?нови [re: гого]  
Автор Lubo ()
Публикувано26.07.00 09:42



Ili az nesto ne moga da rzbera ili ti gowrish gluposti. Znachi pak mojesh da si izpolzwash extern kato si syszdadesh globalen obek za celia klas i sled towa da izpolzwash extern. Po dobre e da imash globalen ukazatel kym obekta i sled towa da go inicializirash. Ako iskash glubalna promenliwa chlen na klas bez da prawish instancia na klasa si ia naprawi static: class CLASS { public: static SOME_TYPE m_MY_STATIC_MEMEBER; } //////////////// sled towa estestweno triabwa da ia inicializirash w CPP falla SOME_TYPE CLASS::m_MY_STATIC_MEMEBER= VALUE; Posle inkludawash hidyra i nawsiakde mojesh da ia izpolzwash: CLASS::m_MY_STATIC_MEMEBER Towa e! гого написа: ------------------------------- Сблъсках се с нещо, на пръв поглед елементарно. Как мога така да декларирам някоя променлива, че да е достъпна за четене от повече от един клас? Значи декларирам я като public, после инклудвам хедъра на класа й в сорса на другия клас и нищо не става. Дава ми я undefined, независимо какво правя. Не ми я признава нито самостоятелно, нито като обект на нейния клас. В help-a четох за extern променливи, ама там пише за нормално С++, което си има и main функция и работата е ясна - квото е преди main-a е глобално. Ако някой може да ми каже как става тая работа ще съм му благодарен, че по метода на пробите и грешките съвсем се изнервих. П.П. Извинявайте, че свалям нивото с такива елементарни въпроси.

Тема Глобални променливи във VC?нови [re: гого]  
Автор Lubo ()
Публикувано26.07.00 09:43



Ili az nesto ne moga da rzbera ili ti gowrish gluposti. Znachi pak mojesh da si izpolzwash extern kato si syszdadesh globalen obek za celia klas i sled towa da izpolzwash extern. Po dobre e da imash globalen ukazatel kym obekta i sled towa da go inicializirash. Ako iskash glubalna promenliwa chlen na klas bez da prawish instancia na klasa si ia naprawi static: class CLASS { public: static SOME_TYPE m_MY_STATIC_MEMEBER; } //////////////// sled towa estestweno triabwa da ia inicializirash w CPP falla SOME_TYPE CLASS::m_MY_STATIC_MEMEBER= VALUE; Posle inkludawash hidyra i nawsiakde mojesh da ia izpolzwash: CLASS::m_MY_STATIC_MEMEBER Towa e!

Тема принципинови [re: гого]  
Автор МиГ-31 ()
Публикувано26.07.00 11:25



В едно c++ приложение е недопустимо да има глобални променливи заради идеологията на капсулацията. Има само 1 глобална променлива - theApp. Всички променливи и функции, които трябва да са достъпни навсякъде, трябва да са членове на класа на theApp.

Тема принципинови [re: МиГ-31]  
Автор Lubo ()
Публикувано26.07.00 11:36



Може и да не са Ако пишеш някаква библиотека от класове, ако искаш глобални променливи по добре да се използват static челен-променливи. Зависи! Между другото в MFC има страшно много глобални променливи, но не са експортвани. Повечето са даже само в рамките на модулите - файловете. Успех!

Тема така е, данови [re: Lubo]  
Автор МиГ-31 ()
Публикувано26.07.00 11:54



Но отново по принцип теб би трябвало слабо те интересува какво има под MFC, ATL и т.н. Все пак е невъзможно да се напише каквото и да е приложение без използване на глобални променливи. Но това се отнася за по-ниските нива, а аз говорих за най-високия слой, който надграждаш. Успех и на теб.

Тема така е, данови [re: МиГ-31]  
Автор Lubo ()
Публикувано26.07.00 12:57



Мерси :)))

Тема принципинови [re: МиГ-31]  
Автор Potencialen emigrant ()
Публикувано26.07.00 14:18



Mnogo me symnyava kompilatoryt na M$ da e chak tolkova "nenormalen" :-) C++ vse pak si ima nasledstvo ot C, koeto spored men si e negov plyus.

Тема принципи [re: гого]  
Автор Пламен ()
Публикувано26.07.00 14:33



Разбира се че може да се използват. Дефинираш си в някой header глобална променлива int X, след коет го include-ваш където искаш. Можеш да си направиш специален .h за тия променливи. Другият номер е да я дефинираш в .cpp и където ти трябва я дефинираш отново като extern. Компилатора ще си я намери.

Тема Вярно, бе!нови [re: Lubo]  
Автор гого ()
Публикувано26.07.00 15:49



На твоя въпрос: "Ili az nesto ne moga da rаzbera ili ti gowrish gluposti." Май по-скоро е второто ;-) Иначе естествено, че със static ще стане, ама нали някой първо трябва да ме светне по въпроса. С целия си акъл, преди я декларирах, ама не я дефинирах. Сега видях, че съм пропускал да я инициализирам. Кво да правим, учим се. Сега върви като пушка. Мерси за помощта.


Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.