【发布时间】:2012-04-10 11:04:39
【问题描述】:
我对 C++ 很陌生,所以这可能是一个微不足道的问题:
我的班级有一个私有成员变量,它是一个数组。我需要返回该数组,但我不确定如何正确执行。
class X {
// ...
private: double m_Array[9];
public: double* GetArray() const { return m_Array; }
};
这段代码有问题吗?这会返回一个指向类成员的指针,对吧? - 因此,如果我从此类的实例中获取该数组并修改它(从类外部),那么原始类成员数组也会被更改吗?如果是这种情况,我该如何返回数组的副本?
【问题讨论】:
-
如果数组大小不固定,请考虑
std::vector< double >(在您的示例中,它似乎是固定的,所以不用担心)。额外的好处:您可以返回对向量的引用。 -
通常使用对象封装数据和行为。
X不能做你想做的事有什么原因吗? Tell, don't ask.
标签: c++