Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,103
#1

Изменение перенных класса в потоке - C++

25.04.2013, 22:06. Просмотров 298. Ответов 2
Метки нет (Все метки)

Здравствуйте! У меня есть класс и в этом классе создается поток. Подскажите, как пользоваться переменной класса в потоке. Если написать ClassA::VarA = 1; то напишет nonstatic member и так далее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение перенных класса в потоке (C++):

Функция класса в потоке - C++
Здравствуйте, не как не могу запустить функцию класса в потоке. Длею так. прототип void Tcp_Process(); ...

Изменение статического закрытого элемента данных класса посредством статической элемент-функции класса - C++
Добрый день. Не могу разобраться, как изменить закрытую статическую переменную класса. Вот код. Ошибка "unresolved external". ...

Как создать объект класса в потоке? - C++
Как создать объект класса в потоке? Это вообще возможно?

Запуск метода класса в новом потоке - C++
Здравствуйте, у меня есть класс, в нём функция - необходимо вызвать эту функцию в нескольких потоках, возможно ли это?

Не могу создать поток( Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке) - C++
хм.. не могу создать поток в c++ и направить туда. Нужно чтобы функция запускается в потоке и работала там пока не закроем в потоке.

Изменение константного поля класса - C++
Является ли изменение константы-поля класса UB? - компилятор может закэшировать значение и не ждать, что оно другое. - с другой стороны...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
tadom
13 / 13 / 0
Регистрация: 28.03.2013
Сообщений: 22
25.04.2013, 22:19 #2
Нужно передать в поток ссилку на екземпляр етого класа, т.е. this. І тогда читать ету переменную через ссилку:
C++
1
link->VarA = 1;
Но если вам нужна переменная которая будет общая для всех еземпляров даного класа, тогда можно оголосить ее как:
C++
1
2
3
4
5
class YourClass{
//...
public: static int VarA;
//...
};
І теперь можно использовать код:
C++
1
ClassA::VarA = 1;
Helldrg
-15 / 55 / 1
Регистрация: 10.01.2011
Сообщений: 1,103
25.04.2013, 23:48  [ТС] #3
Все хорошо, только ошибка появилась, что unresolved external symbol "public: static Struct ClassA::StructName* * ClassA::VarA.
Ведь со статическими все так же делается переменными как и с обычными, тоесть если в классе было
C++
1
static StructName* VarA[20];
то и инициализироаться она будет
C++
1
VarA[0] = new ClassA::StructName;
и пользоваться ею
C++
1
VarA[0]->Field1 = 10;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2013, 23:48
Привет! Вот еще темы с ответами:

Классы С++ (изменение объекта класса) - C++
Всем добрый вечер. Не совсем разобрался в классах , возник вопрос. Есть класс , который при запуске программы заполняем. К примеру. ...

Изменение класса для использования полярных координат - C++
Есть код для вычисления напряжения в цепи переменного тока по формуле: Z = jw + 1 / (jw) для импеданса и V = Z * j для напряжения, где ...

Изменение размера динамического массива объектов класса - C++
Всех приветствую! Нужно изменить размер динамического массива, в котором я храню созданные объекты. Делаю это так: Car *spis_temp =...

О правилах хорошего тона в C++: изменение данных из private секции класса А в классе В через указатель - C++
#include <iostream> using namespace std; class A { int *a; public: A()


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru