我试图建立一个名为" Client"它有一个指针指向矢量"文件"。当我将一个元素推送到列表时,它似乎工作正常,但是当我添加多个元素时,整个向量将被最新元素覆盖。 所以说"一个"被添加到向量中,然后向量是"一个"。 但是说你再添加"两个"然后向量,向量是"两个" ... 我可能做了一些明显不对的事,但我已经被困在这里这么久我不知道该怎么办。
这是我添加到矢量
的地方void share( std::vector<Client*> *cliIP, int connfd, char* buf ){
File *file = new File(buf);
int place;
for (int i = 0; i < cliIP->size(); i++)
if( cliIP->at(i)->getConnfd() == connfd ){
cliIP->at(i)->addFile(file);
place = i;
}
cliIP->at(place)->printFiles();
}
这是我的构造函数:
Client::Client(const char *IP, int portNum, int connfd){
_IPaddr = IP;
_portNum = portNum;
_active = 0;
_connfd = connfd;
_cache = 0;
_listOfClients = new std::vector<Client*>;
_listOfFiles = new std::vector<File*>;
}
这里是addFile:
void Client::addFile( File *file ){
_listOfFiles->push_back(file);
}