我有一個向量包含幾個類的指針。這些類被定義爲這樣:訪問指向類的向量中的元素?
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