【发布时间】:2016-08-30 16:07:48
【问题描述】:
假设我有一个班级MyClass。现在我想使用另一个名为Animals 的类,我可能会执行以下操作。
class MyClass
{
public:
MyClass();
private:
Animals animals;
};
但是我也可以这样做:
class MyClass
{
public:
MyClass();
private:
Animals* animals;
};
然后在构造函数中初始化类:
animals = new Animals();
这两种不同的方法有什么区别,哪个更好,为什么?在我的使用中,Animals 只能在 MyClass 内部使用。我的问题主要是关于性能和内存,我的意思是指针初始化是否需要更多资源?
【问题讨论】:
-
这听起来像是一道作业题。你能把你的问题具体说明一下吗
-
看来你需要阅读this
-
@TankorSmash 这不是作业问题,但我会努力改进我的问题
-
也许您可以尝试指定您希望如何使用动物作为指针或其他东西,并通过这样做来解释您遇到的问题。现在它是如此广泛,很难有效地回答。
-
使用
new分配给你一个指向在堆上创建的对象的指针。第一种方法预先分配内存作为父结构的一部分。如果您通过new分配内存,您必须最终释放该内存。
标签: c++ class pointers initialization