Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глобальные переменные.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
potkin
Хочу хранить глоб.переменные в отдельном класе и обращатся к ним из других классов.
Создаю класс: "varCalss"
"varCalss.h"
#ifndef VARCLASS_H
#define VARCLASS_H
#include <QMainWindow>

class VarClass
{
public:
    VarClass();
    static QString var1;
};

#endif // VARCLASS_H


"varCalss.cpp"
#include "varclass.h"

VarClass::VarClass()
{
    QString var1;
}


Ну и меняю где-то эту переменную "var1"
VarClass::var1 = "TEXT";


Получаю ошибку:
:: error: collect2: ld returned 1 exit status


Подскажите, что не так ???
BRE
"varCalss.cpp"
#include "varclass.h"

QString VarClass::var1;

VarClass::VarClass()
{
}

Litkevich Yuriy
Цитата(potkin @ 11.8.2010, 18:15) *
Получаю ошибку:
:: error: collect2: ld returned 1 exit status
ты не резюме ошибки показывай, а саму ошибку
potkin
BRE,
Спасибо !!!
Алексей1153
Любого гемора со статическим объектом-членом класса можно избежать, сделав статическую же функцию, где локально объявить статическую(инициализировав через конструктор) переменную:
class VarClass
{
public:
   static QString& var1()
   {
        static QString s("текст по умолчанию1");
        return s;
   }

   static QString& var2()
   {
        static QString s("текст по умолчанию2");
        return s;
   }
};


void main()
{
    VarClass::var1()="111";
    VarClass::var2()=VarClass::var1();
}


В таком случае даже будет удобно делать межпотоковую синхронизацию, если это понадобится
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.