crossplatform.ru

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

> Взаимодействие между классами
Raks123
  опции профиля:
сообщение 29.10.2011, 18:02
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 2.10.2011
Пользователь №: 2920

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




Репутация:   0  


Я создаю в программе поток:
int main(int argc, char *argv[])
{
......
Thr thread;
thread.start();
.....

В классе потока есть структура с контейнером:

struct MyStruct{
QString adress;
int port;
bool zanyatost;
int vremya;
QString nameScript;
};
Q_DECLARE_METATYPE(MyStruct);

class Thr : public QThread
{
public:
Thr();
QVector<MyStruct> vector;
........

в исполняемой функции run() я заполняю вектор и создаю объект дочернего класса:

void Thr::run() {
......
MyClient socket(i);
.....

вот сюда передается параметр:

MyClient::MyClient(int nomer)
{
.....
}

И дело в том, что мне в дочернем классе нужно изменить значение родительского вектора, наставник говорил, что можно сделать как то через ссылку на структуру, а объект родительского класса нельзя создавать в дочернем, так как пойдут постоянные пересоздания классов (сам проверил, да и значения родительского вектора не видно).

Я в высокоуровневом программировании я еще младенец не ругайтесь если буду уточнять))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
PAFOS
  опции профиля:
сообщение 2.11.2011, 8:07
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


Цитата
И дело в том, что мне в дочернем классе нужно изменить значение родительского вектора


имхо тут попахивает ошибкой проектирования классов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 14.12.2025, 14:59