我有一个类,其中生成新对象并将它们存储在一个数组中。问题是,只要添加第二个对象,第一个对象的数据就会被第二个数据覆盖。 我在做什么错? 由于阵列中的C++对象未编写
Rotor rot[100]; // How can I make this flexible?
int main(int argc, char **argv) {
for (int i = 1; i < (argc - 1); i++) {
ifstream inFile;
inFile.open(argv[i]);
if (inFile.fail()) {
throw std::invalid_argument("Error reading file!");
return 1;
}
rot[i] = Rotor();
int n;
while (inFile >> n) {
rot[i].import(n);
}
}
...
类转子:
#include "Rotor.h"
int inmap[26];
int outmap[26];
int impcount;
Rotor::Rotor() {
impcount = 0;
}
void Rotor::import(int i) {
outmap[i] = impcount;
inmap[impcount] = i;
impcount++;
}
现在转子[1] .outmap [0]为1,在开始的时候,但在我加入转子[2]它改变为相同的值作为rotor [2] .outmap [0] = 2. 还有一种方法可以使数组长度变得灵活,以便它只使用尽可能多的空间。这在后面的方法中是必需的。
由于
'Rotor rot [100]; //我怎样才能使这个灵活?'=>'vector rot; rot.resize(N);' –
2014-10-27 17:18:17