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

Ваш аккаунт

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

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

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

Rpiclinilo

4.8K
26 апреля 2004 года
guardian1
12 / / 11.11.2003
Чтото меня приклинило не могу создать глобальную переменную и вызывать ее содержимое или записывать в нее новые данные из разных класов :D
5.3K
26 апреля 2004 года
Krakozabla
32 / / 23.04.2004
Цитата:
Originally posted by guardian1
Чтото меня приклинило не могу создать глобальную переменную и вызывать ее содержимое или записывать в нее новые данные из разных класов :D

А поподробнее...?

Может дело в том, что ее надо объявлять до реализации методов классов:-?

4.8K
26 апреля 2004 года
guardian1
12 / / 11.11.2003
Цитата:
Originally posted by Krakozabla
А поподробнее...?

Может дело в том, что ее надо объявлять до реализации методов классов:-?



Необходимо при инициализации в переменную записать одним класом путь, а други считать из етой переменной этот путь
пробывал и до класа и в класе
при вызове в другом класе сомпилятор дает ошибку
переменная не определена или переменная не является глобальной виды вызова переменной
myBuff
CMyClass::myBuff

переменная не глобальная при вызове
::myBuff

5.3K
26 апреля 2004 года
Krakozabla
32 / / 23.04.2004
Цитата:
Originally posted by guardian1


Необходимо при инициализации в переменную записать одним класом путь, а други считать из етой переменной этот путь
пробывал и до класа и в класе
при вызове в другом класе сомпилятор дает ошибку
переменная не определена или переменная не является глобальной виды вызова переменной
myBuff
CMyClass::myBuff

переменная не глобальная при вызове
::myBuff


Возможно, я неправильно понимаю ситуацию, но привожу пример как бы сделал я:

Код:
GVtype GlobalVariable;

class Class1{
...
public:
Class1(GVtype &);
...
};

class Class2{
...
public:
Class2(GVtype &);
...
};

Class1::Class1(GVtype& gv){
gv=...;
}
Class2::Class2(GVtype& gv){
...=gv;
}

...
Class1 cl1(GlobalVariable); // пишем...
...
Class2 cl2(GlobalVariable); // читаем...
...

По-моему, это самый простой вариант. В нем нет ничего военного и все должно работать :D
4.8K
27 апреля 2004 года
guardian1
12 / / 11.11.2003
подскажите как исправить эту ошибку линекера

MyDlg.obj : error LNK2005: "char * proba" (?proba@@3PADA) already defined in My.obj
MyListBox.obj : error LNK2005: "char * proba" (?proba@@3PADA) already defined in My.obj
Debug/My.exe : fatal error LNK1169: one or more multiply defined symbols found

глобальную переменную char * proba объявляю в my.h
вызываю в нескольких класах в разных файлах и результат на лице
3
27 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by guardian1
подскажите как исправить эту ошибку линекера

MyDlg.obj : error LNK2005: "char * proba" (?proba@@3PADA) already defined in My.obj
MyListBox.obj : error LNK2005: "char * proba" (?proba@@3PADA) already defined in My.obj
Debug/My.exe : fatal error LNK1169: one or more multiply defined symbols found

глобальную переменную char * proba объявляю в my.h
вызываю в нескольких класах в разных файлах и результат на лице



Видимо, ты её там не объявляешь, а определяешь.
Объявлять лучше в .h, а определять надо в каком-нибудь одном из cpp.

 
Код:
// my.h
extern char* proba;

// my.cpp
char* proba;
4.8K
28 апреля 2004 года
guardian1
12 / / 11.11.2003
Цитата:
Originally posted by Green


Видимо, ты её там не объявляешь, а определяешь.
Объявлять лучше в .h, а определять надо в каком-нибудь одном из cpp.
 
Код:
// my.h
extern char* proba;

// my.cpp
char* proba;


Вчера тоже самое сделал и в каждом нужном .h файле
так что спасибо хорошо если б раньше подсказали меньше пришлось мучаться на больную голову

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог