考慮以下內_back對象的指針:我有一個包含,除其他類CDevices,串部件推(荷蘭國際集團)的循環
class CDevice
{
public:
CDevice(void);
~CDevice(void);
// device name
std::string Device_Name;
etc...
}
,並在我的代碼別的地方我定義一個包含其他類指針向量CDevices
class CDevice;
class CServers
{
public:
CServers(void);
~CServers(void);
// Devices vector
vector<CDevice*> Devices;
etc...
}
在以下行的問題出現在我的main.c
pDevice = new CDevice;
pDevice->Device_Name = "de";
Devices.push_back(pDevice);
pDevice->Device_Name = " revolotiunibus";
Devices.push_back(pDevice);
pDevice->Device_Name = " orbium";
Devices.push_back(pDevice);
pDevice->Device_Name = " coelestium";
Devices.push_back(pDevice);
for(int i = 0; i < (int)Devices.size(); ++i)
cout << "\nLoad name = " << Devices.at(i)->Device_Name << endl;
我得到的輸出是「coelestium」重複四次:每次我的push_back一個新的元素到載體所有已經存在的元素採取剛剛被添加的一個值。我已經使用迭代器以恢復與所述相同的結果向量中的每個元素也嘗試。有人能告訴我這裏有什麼問題嗎?
Thankx
謝謝你們,你們是最棒的! – 2012-07-11 10:42:48