crossplatform.ru

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


  Ответ в Глобальные переменные.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 11.8.2010, 16:53
  Любого гемора со статическим объектом-членом класса можно избежать, сделав статическую же функцию, где локально объявить статическую(инициализировав через конструктор) переменную:
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();
}


В таком случае даже будет удобно делать межпотоковую синхронизацию, если это понадобится
potkin Дата 11.8.2010, 15:02
  BRE,
Спасибо !!!
Litkevich Yuriy Дата 11.8.2010, 14:44
 
Цитата(potkin @ 11.8.2010, 18:15) *
Получаю ошибку:
:: error: collect2: ld returned 1 exit status
ты не резюме ошибки показывай, а саму ошибку
BRE Дата 11.8.2010, 14:29
  "varCalss.cpp"
#include "varclass.h"

QString VarClass::var1;

VarClass::VarClass()
{
}

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


Подскажите, что не так ???
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 22:45