比方说,我有一个分配一些任意成员数据的类。有迹象表明,我已经看到了使用两种常用的方法(我知道还有其他人):分配C++类成员数据的首选方式是什么?
class A
{
public:
A();
~A();
//Accessors...
private:
B *mB;
}
A::A()
{
mB = new B();
}
A::~A()
{
delete B;
}
对战...
class A
{
public:
//Accessors...
private:
B mB;
}
假定A本身对消费者的代码在堆上分配。
在一般情况下,哪种方法是首选?我意识到具体情况确实鼓励某种方式,但在没有这些要求的情况下,一种方式是优选的吗?什么是权衡?
发现内存泄露。 – 2010-09-01 15:20:42
不能回答这个问题,除非知道'B'是否也可能取决于'A'。 – Chubsdad 2010-09-01 15:31:44
有趣的事情发生在默认复制/分配指针。 :-X – Anycorn 2010-09-01 15:35:11