以任何方式危险吗?我不知道其他的做法,但似乎很可疑。危险的做法?
class cA
{
public:
cA(){}
~cA(){}
int a;
//say class have tons of members..
};
int _tmain(int argc, _TCHAR* argv[])
{
cA obj;
cA *ptr = new cA;
*ptr = obj;
//ofc there is a 'delete ptr;' after
}
如果我记得没错的C++这意味着cA
对象将被创建并ptr
将指向它,我必须这样做,以插入长寿命容器(vector<cA*>
)。
将obj的内容从堆栈复制到堆的方式有效吗?
编辑可能的解决方案?
class cA
{
public:
cA(){}
~cA(){}
int a;
void Copy(cA & ref)
{
a = ref.a;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
cA obj;
cA *ptr = new cA;
ptr->Copy(obj);
取决于其他成员。如果班级拥有资源,是的。记录三条规则。 –
关于资源的好处,关于如何安全完成的好主意?我想创建一个'Copy(cA&a)'方法并手动复制所有成员。 –
@ViniyoShouta:只使用标准拷贝构造函数(隐式生成或用户定义)。正如Luchian所指出的那样,你需要了解什么是[三规则](http://stackoverflow.com/questions/4172722/what-is-the-rule-of-ree)(或C + +11)。 – syam