我正在做作业(并学习 C++ 的工作原理)。我的任务是:
用字段定义一些类......(没关系)从这些对象创建一个向量和数组并迭代它!(列表,按字段平均等)。
现在它可以正确地与向量一起使用,但数组不起作用:
static Cipo* cipok; // object array
static int cep = 0; // endpoint index
static int ccap = 0; // array size
Cipo 的默认分配运算符:
public: Cipo& operator=(const Cipo &c)
{
return ((Cipo&)c);
}
初始化:
cipok = (Cipo*) malloc(sizeof(Cipo*)*100); // new Cipo[num] doesn't work..
ccap = 100;
测试代码:
for (int i = 0; i < 5; i++)
{
Cipo c(43.5, "str", 12670, false, false);
std::cout << c.ar <<" ";
cipok[cep] = c;
std::cout << cipok[cep].ar << " ";
cep++;
}
结果:
12670 0 12670 0 12670 0 12670 0 12670 0
但是如果我使用向量,对象不会“消失”,push_back()
对象并通过直接索引(或迭代器)从向量中读取。为什么他们会表现出这种行为?