我需要在循环中创建对象指针,但我正在努力创建唯一指针。这是我的代码:
class DatClass{
public:
int m;
DatClass(int i):m(i){}
};
class OtherClass{
public:
DatClass* dc;
};
void Test(std::vector<OtherClass> v){
std::vector<OtherClass>::iterator it;
int i = 1;
for(it = v.begin(); it != v.end(); it++){
DatClass dc = DatClass(i);
std::cout << &dc << std::endl;
it->dc = &dc;
i++;
}
}
int main(){
std::vector<OtherClass> v;
v.push_back(OtherClass());
v.push_back(OtherClass());
v.push_back(OtherClass());
Test(v);
}
这并没有给我唯一的指针。输出内容如下:
0xbf94d72c
0xbf94d72c
0xbf94d72c
我是否需要使用 new 才能获得唯一的指针?如果是这样,我会将相应的删除放在哪里?谢谢!