考虑以下内_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