我需要实例化一个对象并将其添加到数组中.这是我目前在一个方法中所拥有的:
Row r;
rows[count] = r;
Run Code Online (Sandbox Code Playgroud)
这里的问题r是在堆栈上并在函数退出后被删除.我快速解决的问题是制作r静态,但那是不对的?我该怎么办?(对不起,完整的C++ noob).
编辑:删除Row的解构函数可以解决问题.
该行将对象rows[count] = r 复制r到count数组中索引处的元素.在那之后,无论发生什么都没关系r,阵列不受影响.
[编辑:好的,间接发生的事情很重要r- 因为副本使用的东西r可以删除.]
如果您习惯于(例如)Java,其中数组元素实际上不是对象,那么这只是对它的引用,这是令人惊讶的.