crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Помощь по QList, Проблемы при добавлении элемента
ALeXUI
  опции профиля:
сообщение 30.4.2011, 21:41
Сообщение #1


Студент
*

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

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




Репутация:   0  


Здравствуйте, я начинающий программист QT, поэтому если вопрос кому-то покажется глупым, прошу не ругать!)
Проблема заключается в следующем, есть указатель на сокет QTcpSocket *pClientSocket
Мне нужно записать его в список, я решил попробывать QList <QTcpSocket>
Но просто путем добавления

QList <QTcpSocket> *ListSocket = new QList <QTcpSocket>();
ListSocket->append(pClientSocket);

Не получается, подскажите пожалуйста как сделать)

А вообще проблема заключается в следующем, мне нужно отслеживать находится ли юзер в онлайне или офлайне. Если онлайн то добавление в лист, указатель на сокет, если отключился то удаление. Хотелось бы ещё услышать совет, по поводу того как удалять.

Заранее Спасибо)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.4.2011, 23:57
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(ALeXUI @ 1.5.2011, 0:41) *
QList <QTcpSocket> *ListSocket = new QList <QTcpSocket>();
ListSocket->append(pClientSocket);
Тут проблема не в Qt, а в Си++.
Разберём по строчкам:
1-ая:
QList <QTcpSocket> *ListSocket; // Объявили указатель на список QTcpSocket
ListSocket = new QList <QTcpSocket>(); // инициализировали указатель пустым списком, созданным в куче.


2-ая:
ListSocket->append(pClientSocket); // пытаемся запихнуть указатель на QTcpSocket, в список,
                                // который должен содержать объекты QTcpSocket (а не указатели


Цитата(ALeXUI @ 1.5.2011, 0:41) *
есть указатель на сокет QTcpSocket *pClientSocket
Мне нужно записать его в список
если нужен список указателей, то именно список указателей и нужно делать:
QList <QTcpSocket*> sockets; // создали список указателей
...
pClientSocket = new QTcpSocket(); // инициализировали (существующий) указатель на QTcpSocket, объектом созданным в куче
sockets->append(pClientSocket); // поместили указатель в список указателей
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ALeXUI
  опции профиля:
сообщение 1.5.2011, 12:45
Сообщение #3


Студент
*

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

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




Репутация:   0  


Cпасибо, огромное)) Глупо ошибся)
А можете подсказать, как лучше делать поиск и удаление?
Причина редактирования: не цитируй целыми сообщениями
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 5.10.2022, 12:40