【发布时间】:2011-03-21 05:50:47
【问题描述】:
在 C++ 中,我有一个类需要保存一个成员,该成员可以动态分配并用作指针,也可以不用作指针,如下所示:
class A {
type a;
};
或
class A {
A();
~A();
type* a;
};
在构造函数中:
A::A {
a = new type();
}
和析构函数:
A::~A {
delete a;
}
除了动态的需要更多代码之外,这两种方法有什么优点或缺点吗?它们的行为是否不同(除了必须取消引用的指针)还是一个比另一个慢?我应该使用哪一个?
【问题讨论】:
-
努力拥有正确的可维护代码,然后如果需要,努力提高性能。
-
您的第二个
A不安全;您还需要定义复制构造函数和operator=。永远不要拥有这样的指针,将它们包装起来,这样您就不需要编写 任何 特殊成员函数。
标签: c++ class dynamic variables