c++ - 使类变量在其他范围内可用? C++

标签 c++ arrays class variables scopes

在类的构造函数中,我创建了一个具有所需大小的数组,如下所示:

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/

相关文章:

java - 打乱数组时出现问题 - 返回 null 而不是随机整数

arrays - 在 node.js v11.0.0^ 中进行更改后,使用 array.sort(a, b) 的正确方法是什么?

c++ - 空类和派生虚拟类的大小

java - 为随机发生器选择合适的类名称

c++ - CMake 共享(或静态?)库无法链接

c++ - Arduino struct does not name 类型错误

arrays - 为什么在使用 base64 编码字节数组时会出现 "index out of range"错误?

C++ 如何在 std::for_each 中访问类中的私有(private)成员

c++ - 重新诠释

c++ - 使用 Boost 的 Lengauer Tarjan 算法计算支配图并使用 graphviz 显示它