crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

potkin
  опции профиля:
сообщение 11.8.2010, 14:15
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хочу хранить глоб.переменные в отдельном класе и обращатся к ним из других классов.
Создаю класс: "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


Подскажите, что не так ???

Сообщение отредактировал potkin - 11.8.2010, 14:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 11.8.2010, 16:53
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2944
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Любого гемора со статическим объектом-членом класса можно избежать, сделав статическую же функцию, где локально объявить статическую(инициализировав через конструктор) переменную:
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();
}


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

Сообщение отредактировал Алексей1153 - 11.8.2010, 17:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 20.7.2025, 4:53