Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C2227:x27的左侧-&燃气轮机;发送';必须指向类/结构/联合/泛型类型_C++_Qt_Sockets_Vector - Fatal编程技术网

C++ C2227:x27的左侧-&燃气轮机;发送';必须指向类/结构/联合/泛型类型

C++ C2227:x27的左侧-&燃气轮机;发送';必须指向类/结构/联合/泛型类型,c++,qt,sockets,vector,C++,Qt,Sockets,Vector,我编写了一个套接字客户端服务器,并在mythread.h文件中创建了一个套接字向量列表,但它给了我无法修复的错误: 代码: for (int i = 0; i < v_->size(); i++) { if(((MYThread *)(v_)[i])->user_id_ != user_id_) { ((MYThread *)(v_)[i])->send(strArray); } } for(int i=0;isize();i

我编写了一个套接字客户端服务器,并在mythread.h文件中创建了一个套接字向量列表,但它给了我无法修复的错误:

代码:

for (int i = 0; i < v_->size(); i++) 
{
    if(((MYThread *)(v_)[i])->user_id_ != user_id_) 
    {
        ((MYThread *)(v_)[i])->send(strArray);
    }
}
for(int i=0;isize();i++)
{
if(((MYThread*)(v_i)[i])->user\u id\uu!=user\u id\uu)
{
((MYThread*)(v_u)[i])->send(strArray);
}
}
错误:

for (int i = 0; i < v_->size(); i++) 
{
    if(((MYThread *)(v_)[i])->user_id_ != user_id_) 
    {
        ((MYThread *)(v_)[i])->send(strArray);
    }
}
D:\My\u Socket\My\u Socket\server\server\mythread.cpp:101:错误:C2440:'type>cast':无法从'std::vector>'转换为>'mythread*' 具有 [ _Ty=神话阅读* ]

D:\My\u Socket\My\u Socket\server\server\mythread.cpp:101:错误:C2227:“->user\u id”的左侧必须指向class/struct/union/generic type

mythrad.h文件

#ifndef MYTHREAD_H
#define MYTHREAD_H

#include <QListWidget>
#include <QObject>
#include <QTcpSocket>
#include <QAbstractSocket>
#include <QDebug>
#include <vector>
#include <QThread>
#include <QString>
#include <QPixmap>

class MYThread : public QThread
{
public:
explicit MYThread(QThread *parent = 0);
explicit MYThread(QTcpSocket *socket, QListWidget *list, std::vector<MYThread *> *v, int user_id);

void doConnect();
void send(QByteArray data);

signals:

public slots:
void connected();
void disconnected();
void bytesWritten(qint64 bytes);
void readyRead();
void quitThread();
private:
QTcpSocket *socket_;
QListWidget *list_;
std::vector<MYThread *> *v_;

MYThread *tt;

void run();

QPixmap *pixmap;
MYThread *socket;

public:
int user_id_;


};

#endif // MYTHREAD_H
\ifndef MYTHREAD\u H
#定义MYTHREAD_H
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
类MYThread:publicqthread
{
公众:
显式MYThread(QThread*parent=0);
显式MYThread(qtcsocket*socket,QListWidget*list,std::vector*v,int user_id);
void doConnect();
无效发送(QByteArray数据);
信号:
公众时段:
空连接();
无效断开连接();
写入的无效字节(64字节);
void readyRead();
void quitThread();
私人:
QTcpSocket*插座;
QListWidget*列表;
std::向量*v_;
MYThread*tt;
无效运行();
QPixmap*pixmap;
MYThread*插座;
公众:
int user_id_;
};
#endif//MYTHREAD\H
尝试将
v\uu
转换为MYThread*,然后使用
i
执行指针数学运算,以查找数组的第
i
个元素,然后取消限制该元素。你想要的是

v_[i]->user_id_
--编辑--

根据您对
v_u
是什么的澄清:

(*v_)[i]->user_id_

请格式化错误消息,使其可读。v_u不是向量,而是指向向量的指针。在尝试访问它的一个元素之前,必须先解除对它的引用;在mythread.h文件中,它是套接字列表,我无法将其转换为mythread*ty,但现在它给出了以下错误:未解析的外部符号“public:……我运行qmake未修复我尝试删除调试文件夹,但我得到了相同的错误