【发布时间】:2025-12-01 10:50:01
【问题描述】:
class A{
Add(const B&);
vector <B*> vect;
};
A & A::Add(const B& obj){
vect.push_back(&obj);
return *this;
}
这里我得到 fpermissive 错误,因为 push_back 的参数是恒定的,我该如何摆脱这个?
我尝试在 Add 中创建本地副本,例如
B tmp;
tmp = obj;
vect.push_back(&tmp);
但我不确定这一点,当程序退出此方法 Add 时,tmp 被破坏,向量中的地址将指向内存中的无效位置?
【问题讨论】:
-
您确定要存储指向您不知道其生命周期的对象的指针吗?
标签: c++