在类的构造函数中,我创建了一个具有所需大小的数组,如下所示:
ArrayClass::ArrayClass(int size)
{
Number* nmbr = new Number[size];
}
和
ArrayClass::ArrayClass()
{
Number* nmbr = new Number[2];
}
我还在标题中指定了它
Number* nmbr;
虽然数组本身的创建有效,但我似乎无法在构造函数之外访问它。似乎每当我离开构造函数时,变量就会从内存中释放出来。我该如何防止这种情况发生,以便在调用类中的其他函数时可以使用该变量?
最佳答案
不要创建新变量。构造函数中的 nmbr
彼此不同, header 中的也不同。
如果你必须使用全局(三思而后行)将其声明为extern
,在单个 TU 中定义它,然后使用
nmbr = new ArrayClass[2];
在你的构造函数中。
不要忘记清理内存或关于三的规则。
关于c++ - 使类变量在其他范围内可用? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381949/