我有一个向量包含几个类的指针。这些类被定义为这样:访问指向类的向量中的元素?
class trackerSocket{
public:
~trackerSocket();
int trackerInitialize(string address);
int trackerSend(string getParams);
int trackerRecv();
be_node *responseDict;
bool working;
unsigned int interval;
string trackerid;
unsigned int complete;
unsigned int incomplete;
be_dict *peersDict;
string peersBinary;
bool dictionary;
private:
string address;
string port;
string protocol;
string page;
SOCKET ConnectSocket;
int parseAnnounce(string announce);
int parseTrackerResponse(string response);
};
该载体通过此线宣称:
vector<trackerSocket*> trackers;
和类是使用这条线添加到向量:
trackerSocket *temptracker = new trackerSocket();
//Initialize values in temptracker structure here (omitted)
trackers.push_back(temptracker);
//Reset temptracker
temptracker = new trackerSocket();
//Initialize values in temptracker structure here (omitted)
trackers.push_back(temptracker);
//Repeat
如何能我访问vector中每个类的工作变量?即使我知道某些类已将它设置为true,下面的代码也不会完成打印工作。
for(i = 0; i < trackers.size(); i++){
if(trackers[i]->working){
printf("Working.\n");
}
}
感谢您的帮助:)
这在技术上很好 - 你必须在其他地方有一些问题。 – 2012-08-06 11:55:29
对于所有元素,“工作”实际上是“假”,或者“printf”不执行任何打印或“追踪器”为空。 – 2012-08-06 11:55:42
嗯。通过在visual studio中监视功能,我可以使用下面的代码访问向量工作值中的第一个类:(*((trackers)._ Myfirst [0x00000000]))。正在工作,第二个使用此代码: (*((trackers)._ Myfirst [0x00000001]))。工作,这是否有助于你们回答这个问题? – brnby 2012-08-06 12:07:02